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

问题描述

我在 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,PublicKeyToken=adb9793829ddae60". Choosing "Microsoft.Extensions.DependencyInjection,PublicKeyToken=adb9793829ddae60" arbitrarily.

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

解决方法

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

像这样:

enter image description here

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

或者在bindingRedirect文件下添加xxx.config

<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 文件-->将 packages.config 迁移到 PackageReference

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...