日期:2014-05-18  浏览次数:20802 次

求助基础问题,关于dll引用路径的问题。
是这样的。我写的一个小程序,为了保持这个程序的绿色特征,只生成了一个可执行文件。

但我的程序引用了其他程序的托管dll。比如在c:\abc\ 下的托管dll。

我发现我的程序只有在c:\abc\下才能正常运行,否则报错:System.IO.FileNotFoundException: 未能加载文件或程序集(我引用的dll名)。

但c:\abc\的目录是在系统PATH变量里的。

我想问,托管dll的搜索范围不像win32dll那样的顺序么?当前目录,系统目录,path变量目录下?

如果别人把我所依赖的软件装到其他目录下,比如D:\cba\(但这个目录也在path变量里)。我该怎么做?

程序的属性设置里,引用路径的具体作用是什么?看msdn没看明白。谢谢

------解决方案--------------------
http://www.cnblogs.com/Charles2008/archive/2010/07/02/Assembly_Search.html

要点是注册GAC或者在App.Config中添加<probing privatePath="xxx"/>