在同一个项中引用同一类库的多个版本

时间:2022-10-12 22:31:00

如何在同一个项中引用同一类库的多个版本?

在同一项目,有时会遇到要同时引一个类库多个版本的需求,例如大部分功能都是基于A 类库的1.0版本实现,现在有个特别的功能只在A类库的2.0版本才有,最好的办法是基于A库2.0版本再全部重写一下
但实际情况却是,所有功能已经很稳定了,不可能为了增加一个小功能而要全部重写,这时候就有必要同时引用A库的两个版本了,1.0和2.0版本

做法:
假设A库的文件为A.dll
1.将A库1.0文件命名为A1.dll
2.将A库2.0文件命名为A2.dll
3.在项目中同时引用A1.dll,A2.dll
4.在App.Config或Web.Config中加入以下节点,注意不同的版本指向不同的文件

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="A" publicKeyToken="450cec67a1cde3d4" culture="neutral" />
<codeBase version="1.0" href="A1.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="A" publicKeyToken="450cec67a1cde3d9" culture="neutral" />
<codeBase version="2.0" href="A2.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>