默认情况下,.net程序对外部程序集dll的搜索路径是exe文件所在的目录,虽然这种方式没有什么太多不好的地方,但是当我们引用外部程序集较多的时候显得非常杂乱。一种比较常用的解决方式是通过配置在app.config中添加私有搜索路径实现:
<runtime>
<assemblyBinding
xmlns="urn:schemas-microsoft-com:asm.v1">
<probing
privatePath="Libs"></probing>
</assemblyBinding>
</runtime>
这样,程序启动后除了当前目录外,还会在Libs文件夹中加载DLL,这样我们就可以把一些外部DLL放到Libs文件夹中了。
另外,这个配置是还支持多个路径的,以引号分割即可:
<probing privatePath="Libs; LibsDatas; "></probing>
当然,制定程序集的加载路径的方法不止这一种,更多知识请参考MSDN文章:指定程序集的位置