我的解决方案中有两个使用 Lucene.Net 的项目。项目 A 参考了 Umbraco 和 Lucene.Net 版本 2.9.4.1,项目 B 参考了 Lucene 版本 3.0.3.0。我想使用 3.0.3.0 但我无法将项目 A 升级到 3.0.3.0,因为 Umbraco 使用的是旧版本。
当我编译我得到这个错误:
Assembly 'B, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'Lucene.Net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=85089178b9ac3181' which has a higher version than referenced assembly 'Lucene.Net, Version=2.9.4.1, Culture=neutral, PublicKeyToken=85089178b9ac3181' A
我尝试了外部别名,但仍然得到同样的错误。
是否可以在每个项目中编译并拥有不同版本的 Lucene.Net?
更新
我也尝试过直接添加 bindingRedirect 但之后得到同样的错误。
<dependentAssembly>
<assemblyIdentity name="Lucene.Net" publicKeyToken="85089178b9ac3181" />
<bindingRedirect oldVersion="0.0.0.0-2.9.4.1" newVersion="2.9.4.1" />
<bindingRedirect oldVersion="3.0.3.0-3.0.3.0" newVersion="3.0.3.0" />
</dependentAssembly>
如果我理解这一点,bindingRedirect 告诉所有项目使用相同的版本。我希望在项目 A 中仍然使用旧版本,在项目 B 中使用新版本。