novotnyllc / MSBuildSdkExtras

Extra properties for MSBuild SDK projects
MIT License
348 stars 42 forks source link

MSBuild.Sdk.Extras package type 'MSBuildSdk' not supported #159

Open dgxhubbard opened 5 years ago

dgxhubbard commented 5 years ago

I get this error attempting to upgrade Package MSBuild.Sdk.Extras 'MSBuild.Sdk.Extras 2.0.24' has a package type 'MSBuildSdk' that is not supported by project. This is in a net standard 2.0 project. I was trying to upgrade to visual studio 2019 and had a missing c# target errors and one of the suggestions was to ugrade to latest MSBuild.Sdk.Extras to resolve the error. I am not familiar with json config files where is the package type and what should it be set to.

dgxhubbard commented 5 years ago

Refer to #111. Our .net standard 2.0 projects do not have a global.json file.

dgxhubbard commented 5 years ago

When we upgraded our old c# projects to the folder style project we used this conversion. But I just found this article.

At the top of our csproj files we have: Project Sdk="Microsoft.NET.Sdk"

However the article says to use: Project Sdk="MSBuild.Sdk.Extras/1.6.61"

Is this causing our problem?

rubo commented 5 years ago

I have the same problem. It's a Xamarin bindings project with Sdk="Microsoft.NET.Sdk" and MonoAndroid81 as the target framework.

clairernovotny commented 5 years ago

Please ensure you're using the Extras as an SDK reference and that you're using the latest 2.x version.

pirhano commented 4 years ago

Any fix for this issue, I'm unable to install the nuget

TylerKendrick commented 4 years ago

Any fix for this issue, I'm unable to install the nuget

This is intentional behavior. SDK packages shouldn't be referenced. If you instead update your project SDK target, this is the new way that SDK packages should be used.

One example is to update the following line: <Project Sdk="Microsoft.NET.Sdk"> To instead look like this: <Project Sdk="MsBuild.SDK.Extras"> Unless you want a specific version: <Project Sdk="MsBuild.SDK.Extras/2.0.54">

The behavior you're describing through Nuget is a feature that is documented by the Microsoft team, here: NuGet issue 6484