如何正确访问当前AppDomain的PrivateBinPath属性?
由于 AppDomain.AppendPrivatePath() 已过时,我试图弄清楚如何为项目中的当前 AppDomain 指定 PrivateBinPath,而不需要启动一个全新的 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属性为空。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
根据 http://msdn.microsoft.com/en-us/library/ 823z9h8w.aspx
privatePath
已经被解释为“应用程序基目录的子目录”......所以我怀疑使用.\
会以某种方式搞乱事情...use
According to http://msdn.microsoft.com/en-us/library/823z9h8w.aspx the
privatePath
is already interpreted as "subdirectories of the application's base directory"... so I suspect that using.\
is somehow messing things up...来自文档:
因此,您需要确保添加的路径位于ApplicationBase 下。
但这仅适用于 app.config。如果您需要在运行时执行此操作,请使用 AssemblyResolve 事件,如文档中所述:
http://msdn.microsoft.com/en-us/library/system.appdomain.assembleresolve.aspx
From the docs:
So, you need to make sure the paths you are add are under ApplicationBase.
This only works with app.config however. If you need to do this at runtime, use the AssemblyResolve event as described in the docs:
http://msdn.microsoft.com/en-us/library/system.appdomain.assemblyresolve.aspx