是否可以在同一进程中加载同一个强命名程序集的多个版本?有很多类似的问题,但没有答案似乎有效。
我问的原因是我们需要使用newer version (4.0.0.0)
SomeAssembly.dll
,但有些引用的dll取决于此dll的older version (3.0.0.0)
。
我尝试过使用下面的程序集绑定重定向配置,但最终出现了编译错误,因为我的程序集依赖于较新版本的dll而这个配置完全覆盖了链接,只有{正在使用{1}}。我希望这会在运行时失败。编译器是否在这里使用配置文件?
按照惯例在项目中引用 version 3.0.0.0
。 Version 4.0.0.0
被复制到项目输出中。
Version 3.0.0.0
答案 0 :(得分:2)
尝试删除行
<bindingRedirect oldVersion="3.0.0.0" newVersion="3.0.0.0" />
并将程序集放在BIN文件夹中的单独文件夹中。 e.g。
<dependentAssembly>
<assemblyIdentity name="SomeAssembly" publicKeyToken="123" culture="neutral" />
<codeBase version="4.0.0.0" href="V4\SomeAssembly.dll" />
<codeBase version="3.0.0.0" href="V3\SomeAssembly.dll" />
</dependentAssembly>