Warning NETSDK1071 A PackageReference to 'Microsoft.AspNetCore.App' specified a Version of `2.1.6`

C#asp.netVisual Studio

C# Problem Overview


I have the following warning

 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	

I tried removing the reference by editing the project file and then adding the nuget package, however when I did this a lot of references no longer worked correctly.

I note the error is mentioning sdk\2.2 which I did install recently on my computer but there is no reference to it in the project file.

I am using VS2017 15.9.5

C# Solutions


Solution 1 - C#

There's a few ways around this.

  • If you include the PackageReference but remove the Version attribute, it should make the warning go away. This is because it is a metapackage, which (simply put) is a type of package that gets the version based on your framework version, more here: https://docs.microsoft.com/en-us/dotnet/core/packages#metapackages

  • To disable the warnings, add AllowExplicitVersion:

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.11" >
  <AllowExplicitVersion>true</AllowExplicitVersion> 
</PackageReference>

More here: https://github.com/dotnet/sdk/issues/2602

Solution 2 - C#

I ran into a similar situation creating a new xUnit Test Project (.NET Core). When I added a reference to an existing ASP.NET Core Web App project, I got:

> Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3277: Found conflicts between different versions of:
> > - 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

I did not understand how there could be conflicts when I did not find any references to Microsoft.AspNetCore.App NuGet package in my xUnit project.

I eliminated these version conflicts by adding the Microsoft.AspNetCore.App to my xUnit Test project.

At this point, I started getting the explicit version reference warning (NETSDK1071).

> NuGet Package Manager and Package Manager Console within Visual Studio > will both add the version attribute to Microsoft.AspNetCore.App when > installing the package. You may remove the version attribute by > editing your .csproj file. This should eliminate the NETSDK1071 > warning.

Note that if you do remove the version attribute, then NuGet Package Manager will disable the [Uninstall] + [Update] buttons and state: "- implicitly referenced by an SDK...".

At this point, I am not getting any warnings.

There is a lot of chatter and some tldr; documentation related to this issue. FWIW, here are a couple of succinct resources that I think warrant highlighting:

Microsoft.AspNetCore.App metapackage for ASP.NET Core 2.1 or later

@nguerrera summarized the the situation very well:

> It is for all tests, or even all non-web projects that have a reference to a web project. It is not really a workaround in that the web reference did not flow transitively in .NET Core 2.x. You need to add it, and you should add it without the version so that the SDK can pick the correct version to avoid conflicts.
> > Better news: starting with .NET Core 3.0, the web reference will flow transitively and you can reference a web project from a test project without any other steps. So I am closing this. The design of 2.x cannot be changed, but we specifically designed things in 3.0 to have transitive Framework References, and this was a motivating scenario for that.

And here are a couple of tldr; conversations:

Does not cover Microsoft.AspNet.Core.All #8691

Version conflicts in test project depending on a Microsoft.AspNetCore.App project #2253

Solution 3 - C#

I had a similar issue with the error code MB2322. Fixed this by removing the version from the tag and adding the version to my Packages.props file in the src folder for the project.

So to translate here in terms of your project, the PackageReference portion you already have would simply have the version removed:

<PackageReference Include="Microsoft.AspNetCore.App" />

And in your Packages.props file, you'd add:

<PackageReference Update="Microsoft.AspNetCore.App" Version="[whichever version you are using here]"/>

Solution 4 - C#

For Developers working on Nopcommerce.

I was having the issue with Nopcommerce Project v(2.2). To resolve, you have to make an edit inside Nop.Core.csproj file.

change :

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.5" />

with :

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.5">
      <AllowExplicitVersion>true</AllowExplicitVersion>
</PackageReference>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKirstenView Question on Stackoverflow
Solution 1 - C#KommandantKeenView Answer on Stackoverflow
Solution 2 - C#RandyDaddisView Answer on Stackoverflow
Solution 3 - C#Marcus BehrView Answer on Stackoverflow
Solution 4 - C#Paramjot SinghView Answer on Stackoverflow