程序集解析程序忽略PrivateBinPath

时间:2012-04-04 23:25:12

标签: c# assemblies

我有一个程序集,我想从appbase的子文件夹加载。我在AppDomain创建过程中在PrivateBinPath中设置了该子文件夹。

问题是我在appbase中有另一个版本的相同DLL。从它看起来的方式来看,解析器首先检测到错误的版本,表示存在不匹配并停止。因此,正确的版本(位于子文件夹中)永远不会被加载。

我已经通过删除appbase中的那些DLL来测试了这一点,并解决了这个问题。即使找到了错误的版本,有没有办法强制搜索?

2 个答案:

答案 0 :(得分:2)

您可以使用AppDomainSetup.PrivateBinPathProbe

AppDomainSetup.PrivateBinPathProbe = "x"

修改:将此设置为null以外的其他值就足够了,另请参阅此MSDN条目:

http://msdn.microsoft.com/en-us/library/system.appdomainsetup.privatebinpathprobe.aspx

答案 1 :(得分:1)

是否要使用PrivateBinPath?如果是这样,看起来您可以将PrivateBinPathProbe设置为任何非空字符串引用:

  

将此属性设置为任何非空字符串值,包括String.Empty(“”),以从应用程序的搜索路径中排除应用程序目录路径(即ApplicationBase),并仅在以下位置搜索程序集PrivateBinPath。

当然,如果您 想要包含ApplicationBase,但在偏好中使用PrivateBinPath,则无效。