如何正确访问当前AppDomain的PrivateBinPath属性?

发布于 2024-08-03 17:29:47 字数 549 浏览 4 评论 0 原文

由于 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属性为空。

Since AppDomain.AppendPrivatePath() is obsolete, I'm trying to figure out how to specify a PrivateBinPath for the current AppDomain in my project without spinning up a whole new AppDomain, and being able to access it later.

I know I can set the PrivateBinPath on an AppDomainSetup object (which would be ok if I wanted to create a new AppDomain), and I also know that I can add it to my app.config like so:

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath=".\AlternateLookupPath" />
    </assemblyBinding>
  </runtime>

However, when adding this entry to my app.config, the AppDomain.CurrentDomain.SetupInformation.PrivateBinPath property is null.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画离情绘悲伤 2024-08-10 17:29:47

使用

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="AlternateLookupPath" />
    </assemblyBinding>
  </runtime>

根据 http://msdn.microsoft.com/en-us/library/ 823z9h8w.aspx privatePath 已经被解释为“应用程序基目录的子目录”......所以我怀疑使用 .\ 会以某种方式搞乱事情...

use

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="AlternateLookupPath" />
    </assemblyBinding>
  </runtime>

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...

不及他 2024-08-10 17:29:47

来自文档:

如果指定的目录为
PrivateBinPath 不在下面
ApplicationBase,它们被忽略。

因此,您需要确保添加的路径位于ApplicationBase 下。

但这仅适用于 app.config。如果您需要在运行时执行此操作,请使用 AssemblyResolve 事件,如文档中所述:

http://msdn.microsoft.com/en-us/library/system.appdomain.assembleresolve.aspx

From the docs:

If the directories specified for
PrivateBinPath are not under
ApplicationBase, they are ignored.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文