How to resolve .net core build error NETDSDK1061 a

2019-01-20 01:47发布

I´ve had the problem, that my AspNetCore.App-metapackage referenced a lower Version of EntityFrameworkCore (2.1.2), than a EfCore provider package (NpgSql, referencing 2.1.3). The result was the warning MSB3277 (here is the question). The quickfix for that was the accepted answer.

Another answer pointed out, that I´ve worked with a lower Microsoft.AspNetCore.App package (2.1.1 at that time) than the last stable version (2.1.4). Changing the package Version was not possible (see picture below).

enter image description here

I´ve had the same issue with Microsoft.NETCore.App in a class library-project

I even didn´t noticed that I used an older metapackage than available. Until today I always checked, if any Updates are available in NuGet Package Manager. I´ve worked with the default project templates and always installed the latest .NetCore SDKs, believing that this is enough. It wasn´t.

After investigating this issue, I´ve found out, that I can force my project to use a specific .NETCore.App or AspNetCore.App metapackage with package manager console (Install-Package Microsoft.NETCore.App -Version 2.1.4 or Install-Package Microsoft.AspNetCore.App -Version 2.1.4).

After that command I´ve had a build error (NETSDK1061: The project was restored using Microsoft.NETCore.App version 2.1.4, but with current settings, version 2.1.0 would be used instead. To resolve this issue, make sure the same settings are used for restore and for subsequent operations such as build or publish.).

3条回答
来,给爷笑一个
2楼-- · 2019-01-20 02:20

I´ve tried to find any help on that issue, finding some github-issues (e.g. this one) looking pretty similar, but where actually different. I´ve found a descriptive doc, but that didn´t really helped me.

I found a pretty helpful blogpost from Rick Strahl, explaining what packages are available and what the purpose of each package is. That was a good thing to start.

This is my solution:

Step 1: Execute Install-Package Microsoft.AspNetCore.App -Version [VersionOfYourChoice] and/or execute Install-Package Microsoft.NETCore.App -Version [VersionOfYourChoice] in package manager console.

Step 2: Edit .csproj as shown below:

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeFrameworkVersion>2.1.4</RuntimeFrameworkVersion>  <- add this line
    <!--<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> --> <- alternative
</PropertyGroup>

One more takeaway: If you work with Win10, do yourself a favor and check the installed .Net Core SDK/Runtimes etc. Uninstall every SDK/Runtimes you do not need (again: Check Ricks blogpost for that). You only need those you are currently targeting in one of your projects.

For example: If you´re working on one .NETCore project, and you just did those 2 steps with Versions 2.1.4 - as time of writing you only need Microsoft .NET Core SDK 2.1.402. To clean up a little I uninstalled every .NET Core SDK/Runtimes/Packages and just took the latest from here.

Note: I followed this blogpost from Jeff Atwood to answer a question, which took me too long to resolve. I hope that helps...

EDIT Good news for .NET Core 2.2: You just have to edit the .csproj as follows:

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <RuntimeFrameworkVersion>2.2.0</RuntimeFrameworkVersion>
</PropertyGroup>

If you´re using AspNetCore don´t forget to update the AspNetCore.App metapackage as well

查看更多
SAY GOODBYE
3楼-- · 2019-01-20 02:30

After adding this line to the .csproj file I was still seeing this issue.

<RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion>

Adding the Version attribute to the Microsoft.AspNetCore.App package reference resolved the issue for me. I changed this:

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

to this:

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

Step 1 in @Joshit's answer probably does this automatically, but I already had the latest version of Microsoft.AspNetCore.App.

查看更多
ら.Afraid
4楼-- · 2019-01-20 02:32

Ug. This issue was very sticky for me. I did the steps in @Joshit's answer and the error persisted. Then I did:

  • Build > Clean Solution
  • Build > Build Solution

Now it is working.

It helps to know your SDK version, which can be found here: C:\Program Files\dotnet\sdk

You can get this problem doing a publish as well. It can be helpful to add this line to the publish_profile.pubxml file:

<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.0</RuntimeFrameworkVersion>

Replace 2.1.0 with 2.1.4 or whatever you are using.

查看更多
登录 后发表回答