程序集解析程序忽略PrivateBinPath

本文关键字:PrivateBinPath 程序 程序集 | 更新日期: 2023-09-27 18:30:07

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

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

我已经通过删除appbase中的DLL进行了测试,它解决了问题。即使找到了错误的版本,有没有办法强制搜索?

程序集解析程序忽略PrivateBinPath

您可以使用AppDomainSetup.PrivateBinPathProbe:

AppDomainSetup.PrivateBinPathProbe = "x"

编辑:只需将其设置为null以外的另一个值就足够了,另请参阅MSDN条目:

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

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

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

当然,如果确实希望包含ApplicationBase,但在首选项中使用PrivateBinPath,则这没有帮助。