【发布时间】:2017-07-31 21:13:10
【问题描述】:
我正在尝试实现(条件)绑定重定向。我希望绑定重定向以使用特定版本的程序集,具体取决于是否已经存在另一个更新版本。
为清楚起见,该项目当前引用版本 1.1.0.0,但如果不存在,我希望它引用版本 1.0.0.0。
此重定向当前已成功重定向到 1.0.0.0,但只有 1.1.0.0 的环境无法正常运行(此帖子的程序集名称和 publicKeyToken 已更改)。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MyAssembly" culture="neutral" publicKeyToken="blahblahblah"/>
<bindingRedirect oldVersion="1.1.0.0" newVersion="1.0.0.0"/>
<codeBase version="1.0.0.0" href="file://C:\Windows\assembly\GAC_MSIL\MyAssembly"/>
</dependentAssembly>
</assemblyBinding>
如果不需要此重定向,如何取消/忽略它?
【问题讨论】:
-
@vcsjones 你介意澄清一下吗?也许我误解了绑定重定向的意义。
-
假设我有一个第 3 方程序集 Y,它依赖于另一个第 3 方程序集 X 的 1.0 版;并且两者都被强烈命名。现在我想使用 X 的 1.1 版本。如果我升级 X,我会破坏 Y,因为它需要 1.0。通过绑定重定向,我可以告诉它使用 1.1,即使它是针对 1.0 编译的。
-
@vcsjones 好的,这更有意义。谢谢你的简单解释。有没有办法可以在运行时动态更改项目引用?
-
据我所知(有可能,但如果有,我不知道)
-
@vcsjones 我拉起this post。我会试试看效果如何。
标签: c#