繁体   English   中英

如何在C#应用程序中将GAC程序集与特定版本一起使用

[英]How to use GAC assembly with specific version in C# app

我有2个称为AAA(1.0.0.0版和2.0.0.0版)的GAC程序集。 该应用程序当前正在使用版本1(通过浏览浏览器添加的引用,路径已硬编码到此文件),但是我想使用版本2。

为了顺利进行,我在app.config中添加了一些代码:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="AAA"
          publicKeyToken="dd8b40231cb0196b"
          culture="en-us" />
        <!-- Assembly versions can be redirected in app, 
          publisher policy, or machine configuration files. -->
        <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

但是应用程序仍在使用汇编版本1.0.0.0,为什么?

      culture="en-us" />

错了,包含代码的程序集始终是中立的。 只有附属程序集具有文化。 换句话说,您的bindingRedirect与应用程序要求的任何程序集都不匹配。 所以没有效果。 确保从项目的bin \\ Debug目录中删除程序集,以便您可以诊断类似的错误。 Fuslogvw.exe实用程序也非常方便,可以记录所有绑定。

固定:

      culture="neutral" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM