如何在c#应用程序中使用特定版本的GAC程序集
本文关键字:版本 程序集 GAC 应用程序 | 更新日期: 2023-09-27 17:49:49
我有2个GAC程序集称为AAA(版本1.0.0.0和版本2.0.0.0)。应用程序当前使用的是版本1(由browser -for-assembly添加的引用,路径已硬编码到该文件),但我想使用版本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" />