使用 NuGet 包编译时出现问题(警告 MSB3277)
Problem compiling with NuGet package (warning MSB3277)
今天我更新了使用 Microsoft Graph API 系统的 Nuget 包,现在我收到了很多与 System.Net.Http
.
相关的警告
在我的 App.config
我有:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
</dependentAssembly>
...
...
我收到的实际警告是:
Found conflicts between different versions of "System.Net.Http" that could not be resolved.
There was a conflict between "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
"System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was chosen because it was primary and "System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was not.
References which depend on "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Net.Http.dll].
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Net.Http.dll
Project file item includes which caused reference "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Net.Http.dll".
System.Net.Http
References which depend on "System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [].
C:\Users\ajtru\.nuget\packages\azure.core.17.0\lib\net461\Azure.Core.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\azure.core.17.0\lib\net461\Azure.Core.dll".
C:\Users\ajtru\.nuget\packages\azure.core.17.0\lib\net461\Azure.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll".
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll".
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.identity.client.35.1\lib\net461\Microsoft.Identity.Client.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.identity.client.35.1\lib\net461\Microsoft.Identity.Client.dll".
C:\Users\ajtru\.nuget\packages\microsoft.identity.client.35.1\lib\net461\Microsoft.Identity.Client.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.logging.12.0\lib\net461\Microsoft.IdentityModel.Logging.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.logging.12.0\lib\net461\Microsoft.IdentityModel.Logging.dll".
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.logging.12.0\lib\net461\Microsoft.IdentityModel.Logging.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.jsonwebtokens.12.0\lib\net461\Microsoft.IdentityModel.JsonWebTokens.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.12.0\lib\net461\Microsoft.IdentityModel.Protocols.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.tokens.12.0\lib\net461\Microsoft.IdentityModel.Tokens.dll
C:\Users\ajtru\.nuget\packages\system.identitymodel.tokens.jwt.12.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.12.0\lib\net461\Microsoft.IdentityModel.Protocols.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.12.0\lib\net461\Microsoft.IdentityModel.Protocols.dll".
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.12.0\lib\net461\Microsoft.IdentityModel.Protocols.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll".
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
我正在使用最新版本 Visual Studio 2019 Community Edition 进行编译。
我注意到了:
References which depend on "System.Net.Http, Version=4.0.0.0, ... Framework\.NETFramework\v4.6.2\System.Net.Http.dll].
我的应用程序属性适用于该框架:
那么我是否必须更改为使用 4.2.0.0
的不同框架?
我很困惑,因为根据 NuGet 包管理器的说法,我认为我拥有的框架没问题。
更新
我的主要解决方案有几个共享项目。上面的 C# 项目就是其中之一。还有另一个 Visual Basic 项目使用 Google Calendar API 投射 App.config
文件的 din 说:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
我注意到它告诉它使用 4.0.0.0
。那么这里的解决方案是编辑c#项目App.config
并更改newVersion
属性以匹配吗?停止冲突?
C# 控制台应用程序项目目标 .NET Framework 默认包含对 System.Net.Http 的引用。如果您不使用该引用,则可以将其删除,这将清除您的警告。
今天我更新了使用 Microsoft Graph API 系统的 Nuget 包,现在我收到了很多与 System.Net.Http
.
在我的 App.config
我有:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
</dependentAssembly>
...
...
我收到的实际警告是:
Found conflicts between different versions of "System.Net.Http" that could not be resolved.
There was a conflict between "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
"System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was chosen because it was primary and "System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was not.
References which depend on "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Net.Http.dll].
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Net.Http.dll
Project file item includes which caused reference "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2\System.Net.Http.dll".
System.Net.Http
References which depend on "System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [].
C:\Users\ajtru\.nuget\packages\azure.core.17.0\lib\net461\Azure.Core.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\azure.core.17.0\lib\net461\Azure.Core.dll".
C:\Users\ajtru\.nuget\packages\azure.core.17.0\lib\net461\Azure.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll".
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll".
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.identity.client.35.1\lib\net461\Microsoft.Identity.Client.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.identity.client.35.1\lib\net461\Microsoft.Identity.Client.dll".
C:\Users\ajtru\.nuget\packages\microsoft.identity.client.35.1\lib\net461\Microsoft.Identity.Client.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.logging.12.0\lib\net461\Microsoft.IdentityModel.Logging.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.logging.12.0\lib\net461\Microsoft.IdentityModel.Logging.dll".
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.logging.12.0\lib\net461\Microsoft.IdentityModel.Logging.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.jsonwebtokens.12.0\lib\net461\Microsoft.IdentityModel.JsonWebTokens.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.12.0\lib\net461\Microsoft.IdentityModel.Protocols.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.tokens.12.0\lib\net461\Microsoft.IdentityModel.Tokens.dll
C:\Users\ajtru\.nuget\packages\system.identitymodel.tokens.jwt.12.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.12.0\lib\net461\Microsoft.IdentityModel.Protocols.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.12.0\lib\net461\Microsoft.IdentityModel.Protocols.dll".
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.12.0\lib\net461\Microsoft.IdentityModel.Protocols.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
Project file item includes which caused reference "C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll".
C:\Users\ajtru\.nuget\packages\microsoft.identitymodel.protocols.openidconnect.12.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.core.0.2\lib\net462\Microsoft.Graph.Core.dll
C:\Users\ajtru\.nuget\packages\microsoft.graph.2.0\lib\net462\Microsoft.Graph.dll
我正在使用最新版本 Visual Studio 2019 Community Edition 进行编译。
我注意到了:
References which depend on "System.Net.Http, Version=4.0.0.0, ... Framework\.NETFramework\v4.6.2\System.Net.Http.dll].
我的应用程序属性适用于该框架:
那么我是否必须更改为使用 4.2.0.0
的不同框架?
我很困惑,因为根据 NuGet 包管理器的说法,我认为我拥有的框架没问题。
更新
我的主要解决方案有几个共享项目。上面的 C# 项目就是其中之一。还有另一个 Visual Basic 项目使用 Google Calendar API 投射 App.config
文件的 din 说:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
我注意到它告诉它使用 4.0.0.0
。那么这里的解决方案是编辑c#项目App.config
并更改newVersion
属性以匹配吗?停止冲突?
C# 控制台应用程序项目目标 .NET Framework 默认包含对 System.Net.Http 的引用。如果您不使用该引用,则可以将其删除,这将清除您的警告。