137 votes

Le SDK .NET actuel ne prend pas en charge le ciblage de l'erreur .NET Standard 2.0 dans la mise à jour 15.3 de Visual Studio 2017.

Je veux créer un projet de bibliothèque de classes avec Target Framework .NET Standard 2.0.

J'ai mis à jour mon Visual Studio 2017 à la version 15.3 et aussi dans l'installateur de Visual Studio vérifié .NET Framework 4.7 SDK et .NET Framework 4.7 targeting pack manuellement et les ont installés.

Il n'y a toujours pas .NET Standard 2.0 dans la combo box Target Framework de la fenêtre Project/Application. J'ai donc changé la balise TargetFramework en .csproj manuellement vers netstandard2.0 mais après avoir essayé de construire, j'obtiens cette erreur :

Le SDK .NET actuel ne permet pas de cibler la norme .NET 2.0. Vous devez soit cibler la norme .NET 1.6 ou une version inférieure, soit utiliser une version du .NET SDK qui prend en charge la norme .NET 2.0.

5 votes

Avez-vous un global.json de votre SDK .NET Core à la version 1.x ? Avez-vous installé le SDK .NET Core 2.0 séparément ? (Je s'attendre à il doit être inclus avec VS, mais cela ne ferait pas de mal de l'installer quand même).

1 votes

@JonSkeet L'installation séparée du SDK .NET Core 2.0 a fonctionné. Il serait bon d'ajouter votre suggestion comme réponse ici.

162voto

Jon Skeet Points 692016

Il semble que l'installation de la mise à jour VS2017 pour cette version spécifique n'ait pas également installé le SDK .NET Core 2.0. Vous pouvez le télécharger ici .

Pour vérifier quelle version du SDK vous avez déjà installée, exécutez

dotnet --info

à partir de la ligne de commande. Notez que s'il y a un global.json dans votre répertoire de travail actuel ou dans tout répertoire antérieur, qui remplacera la version du SDK exécutée. (C'est utile si vous voulez imposer une version particulière pour un projet, par exemple).

A en juger par les commentaires, certaines versions des mises à jour de VS2017 faire installer le SDK .NET Core. Je pense que cela peut varier quelque peu avec le temps.

0 votes

Donc pour cibler .net Standard 2.0, je dois installer .NET Core 2.0 SDK ?

1 votes

@Marwie : Pour cibler netstandard2.0, je pense que oui. Je n'ai pas essayé de cibler cela avec le SDK 1.0, mais je ne serais pas surpris que cela échoue. Vous pouvez toujours cibler netstandard1.X avec le SDK 1.0 bien sûr.

7 votes

Ok - Je suis nouveau sur le sujet - j'ai été surpris de la relation étroite entre .net core et .net standard - n'était-ce pas la raison de créer .net standard pour éviter de telles dépendances ? Pourquoi ne serait-il pas livré dans un paquet séparé ?

28voto

Johnny Camby Points 205

alors que les réponses ci-dessus n'ont pas résolu mon problème. Je l'ai finalement résolu en allant spécifiquement sur ce lien https://www.microsoft.com/net/download/visual-studio-sdks et téléchargez les fichiers requis sdk pour Visual Studio . C'était vraiment confus et je ne comprends pas pourquoi, mais cela a résolu mon problème.

0 votes

Je ne peux pas juste upvoter cela, cela a également résolu mon problème aussi mais j'espère que quelqu'un clarifie la raison derrière ce fonctionnement.

0 votes

Cette solution a également fonctionné pour moi. Pour moi, il s'agissait d'une question d'incompatibilité avec le dernier SDK. Si vous utilisez Visual Studio 2017, vous ne pouvez pas utiliser la dernière version du SDK .NET Core.

15voto

H35am Points 345

Cela se produit parfois lorsque j'essaie d'ouvrir mes anciens projets, ce qui m'aide est de changer le cadre cible des projets. Allez dans Projet -> nom du projet Propriétés... et remplacez le cadre cible par celui que vous avez installé. Project properties

3 votes

Le menu déroulant n'affiche rien pour moi. Avez-vous une idée ?

12voto

lsp Points 644

Pour moi, la solution a consisté à changer la version en global.json pour refléter celui qui est installé.

Comme les autres l'ont dit, la version peut être trouvée en cours d'exécution. dotnet --info dans cmd

Ceci :

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.0.3"
  }
}

Devenu :

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.1.4"
  }
}

Vous pouvez également créer le fichier global.json en exécutant

dotnet new globaljson --sdk-version 2.1.4

à la racine du projet

2 votes

Où est-ce que cela global.json serait trouvé s'il existait ?

0 votes

Je pense que ms a supprimé ce fichier, vérifiez vos fichiers .sln et .csproj :)

2 votes

Le dossier global.json serait à côté du fichier de la solution. J'ai généralement inclus un élément de la solution dans la solution elle-même. J'ai constaté lors de mes expériences que sans fermer et recharger la solution, changer la version dans le fichier global.json peut conduire à des erreurs de construction étranges. Mon commentaire s'applique à VS2018, version 15.9.2, avec .NET Core SDK 2.2.100.

12voto

Wictor Chaves Points 282

Cela a fonctionné pour moi

Utilisez le installation de Visual Studio

Dans l'onglet "Charges de travail", cochez "Développement multiplateforme .Net Core" et cliquez sur "Modifier".

enter image description here

N'oubliez pas de vérifier les " outils de développement .NET Core 2.0 " dans le menu de gauche.

Source :

Note

J'ai installé l'Asp Net Core avant, cependant pas apparu sur mon Visual Studio, juste après avoir installé en utilisant l'installation de Visual Studio est apparu pour moi.

1 votes

Sinon, vous pouvez installer ce dont vous avez besoin à partir d'ici : dotnet.microsoft.com/download/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X