无法解决之间的冲突 - 警告

No way to resolve conflict between - Warning

我在 visual studio 构建

期间收到这样的警告
7>  No way to resolve conflict between "Microsoft.Extensions.DependencyInjection, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60" and "Microsoft.Extensions.DependencyInjection, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60". Choosing "Microsoft.Extensions.DependencyInjection, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60" arbitrarily.

在解决方案中我有几个项目。我怎么知道/找到编译器的混乱来自哪里? 我在解决方案中到处寻找,但在任何可以使用版本 2.0.0.0 的项目中都没有看到程序集?

是的。这可能是由于两个 nuget 包的依赖项包含相同的依赖项 Microsoft.Extensions.DependencyInjection 但版本不同。或者是项目引用的dll。

像这样:

一种方法是安装 Microsoft.Extensions.DependencyInjection nuget 包版本 3.0.0

或在xxx.config文件下添加bindingRedirect

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <assemblyIdentity name="Microsoft.Extensions.DependencyInjection" publicKeyToken="xxx" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
    </assemblyBinding>
  </runtime>

2) 或只是找到问题 nuget 然后更新其使用 Microsoft.Extensions.DependencyInjection 3.0.0 依赖项的版本。

3) 或者您可以使用 PackageReference nuget management format。这是一种新的 nuget 管理格式。右键单击 packages.config 文件-->Migrate packages.config into PackageReference.

此外,如果问题仍然存在,您可以与我们分享packages.config以帮助我们解决问题。