并排的2个版本的库

时间:2018-10-19 16:46:11

标签: c# .net azure nuget

我正在编写控制台应用程序(以后将成为webjob),并且遇到Microsoft提供的2个库需要不同程序集版本的程序集的情况。

  • 第1个库-会要求提供Microsoft.IdentityModel.Clients.ActiveDirectory(> = 3.14.2)
  • 库#2-Microsoft.IdentityModel.Clients.ActiveDirectory(> = 2.22.302111727 && <3.0.0)

看起来不像是简单地将程序集绑定到

 <dependentAssembly>
    <assemblyIdentity name="Microsoft.IdentityModel.Clients.ActiveDirectory.Platform" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.19.8.16603" newVersion="3.19.8.16603" />
  </dependentAssembly>

对我的处境有帮助。

让我头疼的是,如果第一个库已经存在,nuget不会下载另一个库(我设法使用IgnoreDependencies克服了这个麻烦。)

我已经检查过-这两个库的新旧版本都不允许我使用相同的程序集。

所以我的问题是:

  1. 是否有永久解决此问题的好方法(同时使用dll hell和nuget)?
  2. IL会合并帮助吗? (我可以将库1的所有工作保留在一个项目中,并添加ILMerge该项目及其所有依赖项。)
  3. 什么是正确的方法。

0 个答案:

没有答案