问题
I'm developing a mobile app and using MS App Center for CI. Yesterday the Unit Test project failed to build in App Center with the following error. I couldn't recreate the issue on any developer machine, this error only occours in App Center.
error : NETSDK1061: The project was restored using Microsoft.NETCore.App version 1.0.0, but with current settings, version 2.0.9 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. Typically this issue can occur if the RuntimeIdentifier property is set during build or publish but not during restore. For more information, see https://aka.ms/dotnet-runtime-patch-selection.
Their paid support just give the basics, clean the project, roll back my last commit ect. Has anyone come into this issue before on App Center?
回答1:
You need to set the same publish and building runtimes
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.0</RuntimeFrameworkVersion> --> fix publishing issues
<PlatformTarget>AnyCPU</PlatformTarget> --> fix publishing issues
</PropertyGroup>
<ItemGroup>
<PackageReference Update="Microsoft.NETCore.App" Version="2.1.0" /> --> fix building issues
<ProjectReference Include="..\PublicSonar.Monitor.Persistent.Json\PublicSonar.Monitor.Persistent.Json.csproj" />
</ItemGroup>
</Project>
回答2:
If you use Azure DevOps, don't edit project file. Use "dotnet restore"(https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/dotnet-core?view=azure-devops) instead of Nuget restore:
Replace this:
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
With this:
- script: dotnet restore
回答3:
I am on Visual Studio 2019. I encountered this issue when I tried to publish my project as Self-contained for the second time.
What I did to get rid of this error was:
- Change the Deployment Mode to Framework Dependent
- Publish the project
- Change it back to Self-contained and published again
It seemed to be caused by some faulty cache that can be cleared by switching to a different deployment mode.
回答4:
Try Adding <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
to your <PropertyGroup>
tag. Example :
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
回答5:
I am on Visual Studio 2019 and this answer put me on the right path, my procedure was:
- Uninstall all instances of
Microsoft .NET Core SDK
off my machine. - Restarted computer.
- Installed latest version of the
SDK
from here.
回答6:
I had this problem because I had a nuget source that was no longer existing. After removing the faulty nuget source I restored the project and everything worked.
I restored the project via commandline:
dotnet restore
回答7:
Check also the solution I suggested here (Using Azure Pipelines with multi targeting projects I get error NETSDK1061), maybe it works for you, too:
- task: NuGetToolInstaller@0
inputs:
versionSpec: '>=4.3.0'
checkLatest: true
回答8:
What solved the issue for me, was to update the default NuGet package cache 'C:\Users\.nuget\packages' used for restore by changing the parameter in msvc:
Tools > Options > NuGet Package Manager > Package Restore > Allow NuGet to download missing package & Automatically check for missing packages during build in Visual Studio.
来源:https://stackoverflow.com/questions/53720678/netsdk1061-the-project-was-restored-using-microsoft-netcore-app-version-1-0-0