警告NETSDK1071到'Microsoft.AspNetCore.App'的PackageReference指定的版本为2.1.6。

时间:2019-01-11 01:56:35

标签: c# asp.net visual-studio

我有以下警告

 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

3 个答案:

答案 0 :(得分:19)

有几种解决方法。

答案 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
  •   

当我在xUnit项目中找不到任何对Microsoft.AspNetCore.App NuGet包的引用时,我不明白会发生冲突。

我通过将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>