我最近更新了一个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选择。:秒