是否可以在不使用 app.config 的情况下设置程序集探测路径?

2023-12-31

我需要将我的应用程序的 DLL 放置在子文件夹中。可以通过 app.config 设置此子文件夹:

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

但由于某些原因,我不想在这种情况下使用 .config 文件。是否可以直接从应用程序代码设置探测路径?我确信 DLL 始终位于此文件夹中。

有任何想法吗?


探测路径由主应用程序域的 AppDomainSetup 定义。在默认的 CLR 主机中,该 AD 会在代码开始运行之前自动创建。配置其设置的唯一方法是使用 .config 文件,它必须与 exe 具有相同的名称。之后它会被冻结,您在代码中所做的任何更改都不会生效。

解决方法是创建您自己的 AD,以便您可以更改其设置或实现 AppDomain.AssemblyResolve 事件。这两种方法都无法与简单的解决方案相比:.config 文件或仅将程序集保留在正确的目录中。嗯嗯。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在不使用 app.config 的情况下设置程序集探测路径? 的相关文章

随机推荐