代码之家  ›  专栏  ›  技术社区  ›  rwkiii

.NET Framework更新离开生成时出现“遇到冲突…”警告

  •  1
  • rwkiii  · 技术社区  · 8 年前

    我最近更新了一个ASP.NET从.NETFramework4.5.1到4.6.1的MVC5项目。我还更新了NuGet包。

    Encountered conflict between ... 我在VS Output窗口中包含了以下几个条目:

    1>_HandlePackageFileConflicts: 
    1>  Encountered conflict between 'Reference:Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL' and 'Reference:Microsoft.Win32.Primitives'.  Choosing 'Reference:Microsoft.Win32.Primitives' because AssemblyVersion '4.0.3.0' is greater than '4.0.2.0'. 
    1>  Encountered conflict between 'Reference:System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL' and 'Reference:System.AppContext'.  Choosing 'Reference:System.AppContext' because AssemblyVersion '4.1.2.0' is greater than '4.0.0.0'. 
    1>  Encountered conflict between 'Reference:System.Console, Version=4.0.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL' and 'Reference:System.Console'.  Choosing 'Reference:System.Console' because AssemblyVersion '4.0.2.0' is greater than '4.0.1.1'. 
    1>  Encountered conflict between 'Reference:System.Diagnostics.TraceSource, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL' and 'Reference:System.Diagnostics.TraceSource'.  Choosing 'Reference:System.Diagnostics.TraceSource' because AssemblyVersion '4.0.2.0' is greater than '4.0.1.0'. 
    1>  Encountered conflict between 'Reference:System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL' and 'Reference:System.Globalization.Calendars'.  Choosing 'Reference:System.Globalization.Calendars' because AssemblyVersion '4.0.3.0' is greater than '4.0.2.0'.
    

    这个 packages.config

    <package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
    <package id="Microsoft.Win32.Registry" version="4.5.0" targetFramework="net461" />
    

    包/文件夹也包含正确的版本。4.3.0和4.5.0。

    如何解决这些冲突?

    * *
    

    更新

    有一个参考Microsoft.Win32.Primitives的路径为

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\Microsoft.Win32.Primitives.dll
    

    在安装NuGet包时配置引用。我不明白为什么NuGet要安装v4.3.0,并在项目中添加对v4.0.2.0扩展的引用,但是由于v4.3.0更新了,所以要使用v4.3.0来解决冲突。

    这是令人困惑的行为。它在我的本地电脑上运行得很好,但我在发布后的一个登台服务器上遇到了一个微妙的问题。我怀疑有一个或多个包在登台服务器上没有正确解决此冲突。

    我想知道如何消除这些依赖项的eenie meenie minie moe选择。:秒

    1 回复  |  直到 8 年前
        1
  •  2
  •   Leo Liu    8 年前

    .NET Framework更新离开生成时遇到警告之间的冲突

    这是因为:

    这是由于 支持netstandard2.0 . 我们现在在目标中执行此操作,而不是

    检查 this thread 更多细节。

    要解决此问题,您可以添加绑定重定向到这些引用,或者只使用标准引用来 Microsoft.Win32.Primitives 不带任何裸体包裹 Microsoft.Win32.原语 .

    看到了吗 System.Net.Http v4.2.0.0 being copied/loaded from MSBuild tooling 一些细节。

    推荐文章