如何正确访问当前AppDomain中的PrivateBinPath财产?(How to proper

2019-08-03 00:57发布

由于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。

Answer 1:

使用

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

据http://msdn.microsoft.com/en-us/library/823z9h8w.aspx的privatePath已经被解释为“应用程序的基本目录的子目录” ......所以我怀疑使用.\由于某种原因搞乱的东西了...



Answer 2:

从文档:

如果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?
标签: c# appdomain