我有一个程序集,我想从appbase的子文件夹加载。我在AppDomain创建过程中在PrivateBinPath中设置了该子文件夹。
问题是我在appbase中有另一个版本的相同DLL。从它看起来的方式来看,解析器首先检测到错误的版本,表示存在不匹配并停止。因此,正确的版本(位于子文件夹中)永远不会被加载。
我已经通过删除appbase中的那些DLL来测试了这一点,并解决了这个问题。即使找到了错误的版本,有没有办法强制搜索?
答案 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
,则无效。