C#如何加载程序运行目录外的程序集

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013779141/article/details/54932353

一、需求说明

项目中需要引用的dll数目众多时,需要整理到不同的文件夹下进行管理。一般来说,引用的dll文件都在(或编译时复制到)运行目录下,但为了方便管理动态库,把dll归类到不同的文件夹后(比如说,程序编译到Bin目录下,TD开头的这些dll文件整理到Bin/Third目录下),添加引用和编译没问题,但是运行的时候就存在问题。

因为TD这些动态库存在依赖关系,运行的时候td_mgd依赖的dll都不在运行目录(Bin目录)下,而是在Bin/Third目录下,从而导致异常。

二、解决方案

在项目的app.config中做如下配置:

privatePath就是运行时程序集的搜索路径,即运行时,依赖的dll不在运行目录下时就在运行目录下的Third文件夹下寻找依赖的程序集。当你有多个搜索路径需要添加时,则可以这样:"    <probing privatePath="Lib;Lib\Krypton"/>" 以分号隔开。


注意:当解决方案存在多个程序集时,应该在主程序集(也就是启动程序集)的app.config中配置。

猜你喜欢

转载自blog.csdn.net/u013779141/article/details/54932353