引用的DLL比较多的时候,全部的DLL都放在exe同目录下,显得比较乱而且不利于管理。为了更好的管理软件中的各种文件应该分门别类的放入放在子文件夹中。步骤如下:
1、将dll文件放入子文件夹
2、添加引用
解决方案资源管理器中,中 工程名或者“引用”上右键,选中添加引用。
中引用管理器中,点击浏览,选中子文件夹中的dll文件。
3、修改dll文件的引用属性
点击添加成功的引用,将“复制本地”改成false(不然程序运行的时候会将子文件夹下的dll文件复制到根目录中)。
4、添加引用的地址,修改config文件
在根目录中打开“app.config”文件,在<configuration>节点后面添加<runtime>节点再添加下面的节点,其中 probing privatePath 中的地址为子文件的名称。重新生成一下就可以达到预期效果了。指定的目录即为生成exe所在路径的次级dll文件目录。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin/dll;" />
</assemblyBinding>
</runtime>
</configuration>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;bin2\subbin;bin3"/>
</assemblyBinding>
</runtime>
</configuration>
这是最简单的方法,当然也有一定的局限性,就是没法对dll做控制,另外,无法解决第三方DllImprt
中引入的程序集不在根目录下的问题,不过无论怎么说,这个都基本解决了问题。