我引用了一个自己用C#写的dll,
然后右键引用的dll->属性->复制到本地=false;
然后运行,程序报如下错误:
未能加载文件或程序集“ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。
我希望我的程序能够从指定路径C:\plugin找到dll文件,而不是从软件当前目录找.应该怎么办. dll文件太多太大了.
------解决思路----------------------
把C:\plugin添加到PATH
------解决思路----------------------
或者监听AppDomain.AssemblyResolve事件
------解决思路----------------------
dll必须签名,然后用gacutil加入全局程序集缓存。
------解决思路----------------------
在app.config中增加增加节就行了
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="C:\plugin"/>
</assemblyBinding>
</runtime>
------解决思路----------------------
在program加载时候使用 Environment.SetEnvironmentVariable 设定环境变量。根据你的要求建议使用EnvironmentVariableTarget.Process这个枚举项设置
------解决思路----------------------
http://www.cnblogs.com/yunhuasheng/archive/2008/03/12/1102542.html
------解决思路----------------------
搞错了,probing privatePath是相对于程序根目录的
少量dll可以 参考下面帖子中的AppDomain.CurrentDomain.AssemblyResolve事件
http://blog.csdn.net/dyllove98/article/details/9391325
大量最好还是改下环境变量