由于AppDomain.AppendPrivatePath()已经过时,我试图找出如何指定PrivateBinPath在我的项目当前的AppDomain没有旋转了一个全新的AppDomain,并能在稍后访问它。
我知道我可以设置一个AppDomainSetup对象的PrivateBinPath(如果我想创建一个新的AppDomain这将是确定的),我也知道我可以像这样把它添加到我的app.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath=".\AlternateLookupPath" />
</assemblyBinding>
</runtime>
然而,将此项添加到我的app.config时,该AppDomain.CurrentDomain.SetupInformation.PrivateBinPath属性为null。
使用
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="AlternateLookupPath" />
</assemblyBinding>
</runtime>
据http://msdn.microsoft.com/en-us/library/823z9h8w.aspx的privatePath
已经被解释为“应用程序的基本目录的子目录” ......所以我怀疑使用.\
由于某种原因搞乱的东西了...
从文档:
如果PrivateBinPath指定的目录不ApplicationBase下, 它们将被忽略。
所以,你需要确保你补充的ApplicationBase下的路径。
这仅与工作的app.config不过。 如果你需要在运行时要做到这一点,使用如在文档中描述的AssemblyResolve事件:
http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx
文章来源: How to properly access the PrivateBinPath property of the current AppDomain?