Fixing issue related to Package is not compatible with netcoreapp2.1, supports netstandard2.0, when using Azure DevOps (VSTS)

Tobias Zimmergren
Tobias Zimmergren

If you're using Azure DevOps (also known as VSTS), and you work with dotnet core in any capacity, perhaps you're migrating from one version to the next - as I was for some of my projects.

An error that struck me was the following (redacted for clarity and brevity in the post):

Errors in D:\a\1\s\Zimmergren.Demos.API\Zimmergren.Demos.Web\Zimmergren.Demos.Web.csproj
    Package Microsoft.Extensions.FileProviders.Physical 2.0.0 is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1). Package Microsoft.Extensions.FileProviders.Physical 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
    Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.1 is not compatible with netcoreapp2.1 (.NETCoreApp,Version=v2.1). Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.1 supports: netstandard2.0 (.NETStandard,Version=v2.0)
    One or more packages are incompatible with .NETCoreApp,Version=v2.1.)
2018-09-25T16:14:46.1605781Z ##[error]Packages failed to restore
2018-09-25T16:14:46.1623512Z ##[section]Finishing: NuGet restore

It clearly states that One or more packages are incompatible with .NETCoreApp,Version=v2.1.)

This struck me as odd, as I know for a fact that a lot of the packages I use that got this error message indeed have support for the latest incarnation of dotnet core.

When I examined the logs of the pipeline execution, I noticed that it didn't use the latest version and it tried to fetch version 4.1.0 from the cache:

2018-09-25T16:11:54.8393379Z Caching tool: NuGet 4.1.0 x64
2018-09-25T16:11:54.8524100Z Found tool in cache: NuGet 4.1.0 x64
2018-09-25T16:11:54.8878912Z Resolved from tool cache: 4.1.0
2018-09-25T16:11:54.8880712Z Using version: 4.1.0
2018-09-25T16:11:54.8883410Z Found tool in cache: NuGet 4.1.0 x64

Solution: Create a "NuGet Tool Installer" task

The solution was very simple, once figuring out what the culprit was. The default version of NuGet running in the VSTS pipeline was not the latest one - so I tried to grab the latest one instead, which you can do by creating a "NuGet Tool Installer" task and point it to a Version of NuGet.exe to install, which you simply specify the version number of the desired NuGet.exe you want to execute in the build.

It looks something like this:

NuGet Tool Installer in VSTS/Azure DevOps

Once this have been properly configured, the builds all succeeded using the latest incarnation of .net core, which in my case was v2.1.

Happy coding!

Azure

Tobias Zimmergren Twitter

Hey, I'm Tobias! I write about my experiences in designing, architecting, securing, and operating distributed cloud services. Nice to meet you ๐Ÿ‘‹

Reactions and mentions


Hi, I'm Tobias ๐Ÿ‘‹

Tobias Zimmergren profile picture

Find out more about me.

Recent comments

Recommended books!

Prepare for the AZ-500 exam!
Exam Ref AZ-500 Microsoft Azure Security Technologies
Azure Security Handbook!
Azure Security Handbook: A Comprehensive Guide for Defending Your Enterprise Environment
Prepare for the SC-900 exam!
Exam Ref SC-900 Microsoft Security, Compliance, and Identity Fundamentals