我有以下警告
Severity Code Description Project File Line Suppression State
Warning NETSDK1071 A PackageReference to 'Microsoft.AspNetCore.App' specified a Version of `2.1.6`. Specifying the version of this package is not recommended. For more information, see https://aka.ms/sdkimplicitrefs MyApi C:\Program Files\dotnet\sdk\2.2.102\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.DefaultItems.targets 153
我尝试通过编辑项目文件然后添加nuget包来删除引用,但是当我这样做时,很多引用不再能正常工作。
我注意到错误是提到最近在计算机上安装的sdk \ 2.2,但在项目文件中没有对其进行引用。
我正在使用VS2017 15.9.5
答案 0 :(得分:19)
有几种解决方法。
PackageReference
但删除了Version
属性,则应该使警告消失。这是因为它是一个 metapackage ,(简而言之)是一种基于您的框架版本获取版本的软件包,此处为:https://docs.microsoft.com/en-us/dotnet/core/packages#metapackages PackageReference
中添加一些元数据以禁用警告,更多信息在https://github.com/dotnet/sdk/issues/2602 答案 1 :(得分:2)
我遇到了类似的情况,即创建了一个新的xUnit测试项目(.NET Core)。当我添加对现有ASP.NET Core Web App项目的引用时,我得到:
Microsoft.Common.CurrentVersion.targets(2106,5):警告 MSB3277 : 发现不同版本的 之间存在冲突:
- Microsoft.AspNetCore.Authorization
- Microsoft.AspNetCore.Cors
- Microsoft.AspNetCore.Diagnostics.Abstractions
- Microsoft.AspNetCore.Mvc
- Microsoft.AspNetCore.Mvc.Abstractions
- Microsoft.AspNetCore.Mvc.Core
- Microsoft.AspNetCore.Mvc.Formatters.Json
- Microsoft.AspNetCore.Mvc.RazorPages
- Microsoft.AspNetCore.Mvc.ViewFeatures
- Microsoft.AspNetCore.Razor.Runtime
- Microsoft.AspNetCore.Routing
我通过将Microsoft.AspNetCore.App
添加到我的xUnit Test项目中消除了这些版本冲突。
这时,我开始收到 明确版本参考警告 ( NETSDK1071 )。
Visual Studio中的NuGet软件包管理器和软件包管理器控制台 都将在以下情况下将版本属性添加到Microsoft.AspNetCore.App 安装软件包。您可以通过以下方式删除版本属性 编辑您的.csproj文件。这应该消除NETSDK1071 警告。
请注意,如果您确实删除了版本属性,则NuGet软件包管理器将禁用[卸载] + [更新]按钮并显示以下状态: “-由SDK隐式引用...” 。
目前,我没有收到任何警告。
有很多chat不休和一些tldr;与该问题有关的文档。 FWIW,以下是一些我认为值得重点介绍的简洁资源:
Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.1 or later
@nguerrera很好地总结了这种情况:
它适用于所有测试,甚至适用于所有引用Web项目的非Web项目。这不是真正的解决方法,因为Web参考在.NET Core 2.x中没有传递。您需要添加它,并且应该添加不带版本的版本,以便SDK可以选择正确的版本以避免冲突。
更好的消息:从.NET Core 3.0开始,Web参考将传递,并且您可以从测试项目中参考Web项目,而无需任何其他步骤。所以我要关闭这个。 2.x的设计无法更改,但是我们在3.0中专门设计了东西来具有可传递的Framework References,这是一个激励性的方案。
这是几个tldr;对话:
Does not cover Microsoft.AspNet.Core.All #8691
Version conflicts in test project depending on a Microsoft.AspNetCore.App project #2253
答案 2 :(得分:0)
面向从事Nopcommerce的开发人员。
我遇到了Nopcommerce Project v(2.2)的问题。 要解决此问题,您必须在Nop.Core.csproj文件中进行编辑。
更改:
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.5" />
与:
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.5">
<AllowExplicitVersion>true</AllowExplicitVersion>
</PackageReference>