gpt4 book ai didi

C# 如何使用应用程序配置文件重定向程序集加载

转载 作者:行者123 更新时间:2023-11-30 16:33:40 26 4
gpt4 key购买 nike

我有一个在 GAC 中注册了几个版本的程序集。现在,我希望使用此程序集(版本 1.3)的一位客户指向最新版本(1.4),而无需打开源代码并重新编译客户端。
我看到一篇文章演示了使用应用程序配置文件(winform 应用程序)这样做的技术

配置文件内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:asm="urn:schemas-microsoft-com:asm.v1">
<runtime>
<asm:assemblyBinding>
<!-- one dependentAssembly per unique assembly name -->
<asm:dependentAssembly>
<asm:assemblyIdentity
name="MyFacade"
publicKeyToken="c9c18e16df1654e0" />
<!-- one bindingRedirect per redirection -->
<asm:bindingRedirect oldVersion="1.3.0.0"
newVersion="1.4.0.0" />
</asm:dependentAssembly>
</asm:assemblyBinding>
</runtime>
</configuration>

如您所见,版本 1.3.0.0 有一个绑定(bind)重定向至 1.4.0.0用于名为 MyFacade 的程序集.

现在,这种方法只有一个小问题。它不起作用:)

我确定这与我的代码有关。

有什么建议吗?

谢谢,
阿迪巴尔达

最佳答案

首先, this is the best source 我发现了这个主题。有一些不同,例如,他们没有使用 asm:命名空间,此外,您可能希望通过添加 <publisherPolicy apply="no" /> 来禁用发布者策略如文章所述。

在我们之前的一个项目中,我们需要更多的控制,所以我们需要捕捉 AppDomain.AssemblyResolve Event 并路由到我们想要的任何程序集。 Here您可以找到有关该概念的更多信息。不过,您必须对您的应用进行一次操作。

关于C# 如何使用应用程序配置文件重定向程序集加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2942767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com