针对较高版本的程序集进行编译,但绑定重定向到 app.config 中的较低版本

Compiling against a higher version of assemblies but binding redirect to lower versions in app.config

我正在针对版本为 2.0.0.0.

的第三方强命名程序集 (thirdparty.dll) 编译我的 DLL

但是,当我将我的 DLL 和 exe 发送到客户的机器时,我想发送 thirdparty.dll 版本 1.0.0.0(不要问为什么,我有这样做的理由)。

这可能吗?我的理解是可以,只要我specify the dependentAssembly tag这样

  <dependentAssembly>
    <assemblyIdentity name="thirdparty" culture="neutral" publicKeyToken="3d67ed1f87d44c89"/>
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="1.0.0.0"/>
  </dependentAssembly>

因为 newVersion ,

This value can specify an earlier version than oldVersion.

代码可以运行,除非出现任何编译问题when/if我针对 thirdparty.dll 版本 1.0.0.0.

编译代码

我的理解正确吗?

回答我自己的问题:是的,这是正确的。

EG:

 <dependentAssembly>
    <assemblyIdentity name="thirdparty" culture="neutral" publicKeyToken="3d67ed1f87d44c89"/>
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="1.0.0.0"/>
  </dependentAssembly>

将工作(0.0.0.02.0.0.0 之间的所有版本将被重定向到 1.0.0.0),因此:

 <dependentAssembly>
    <assemblyIdentity name="thirdparty" culture="neutral" publicKeyToken="3d67ed1f87d44c89"/>
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="4.0.0.0"/>
  </dependentAssembly>

0.0.0.02.0.0.0 之间的所有版本将被重定向到 4.0.0.0