web-dev-qa-db-fra.com

MSBUILD renvoie une erreur: le SDK «Microsoft.NET.Sdk» spécifié est introuvable

J'essaye de construire une solution en utilisant la ligne de commande msbuild et je reçois toujours cette erreur:

error MSB4236: The SDK 'Microsoft.NET.Sdk' specified could not be found.

La version de msbuild est la dernière version des outils Microsoft Visual Studio 2017. J'utilise Windows Server 2012 R2 et le projet utilise .NET Core 2.0.

Voici la commande que j'utilise:

msbuild.exe /p:Configuration=Release /t:restore C:\Projects\MyProject.sln

Journal complet:

    Microsoft (R) Build Engine version 15.3.409.57025 for .NET Framework
    Copyright (C) Microsoft Corporation. All rights reserved.

    Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
    Build started 9/16/2017 3:09:03 PM.
    Project "C:\Projects\MyProject.sln" on node 1 (restore target(s)).
    ValidateSolutionConfiguration:
      Building solution configuration "Release|Any CPU".
    Project "C:\Projects\MyProject.sln" (1) is building "C:\Projects\Kernel\Kernel.csproj" (2) on node 1 (restore target(s)).
    C:\Projects\MyProject.sln" (1) is building "C:\Projects\Kernel\Kernel.csproj : error MSB4236: The SDK 'Microsoft.NET.Sdk' specified could not be found.
    Done Building Project "C:\Projects\MyProject.sln" (1) is building "C:\Projects\Kernel\Kernel.csproj" (restore target(s)) -- FAILED.

    Build FAILED.
    "C:\Projects\MyProject.sln" (restore target) (1) ->
"C:\Projects\Kernel\Kernel.csproj" (restore target) (2) ->
  C:\Projects\Kernel\Kernel.csproj : error MSB4236: The SDK 'Microsoft.NET.Sdk' specified could not be found.

0 Warning(s)
    11 Error(s)
23
Luiz Gustavo Maia

J'ai rencontré cette erreur après avoir joué avec l'installation de .Net Core 2.0 et l'avoir apparemment gâché. J'obtiendrais cette même erreur pour dotnet restore, dotnet build ou dotnet msbuild. Essentiellement, tout ce qui concerne .Net Core et msbuild.

L'erreur s'est produite car la variable d'environnement MSBuildSDKsPath pointait toujours vers l'ancien SDK .Net Core 1.1.

Pour résoudre le problème, j'ai défini manuellement la variable d'environnement MSBuildSDKsPath pour pointer vers le chemin du SDK 2.0.0, qui, pour moi avec x64, était à: C:\Program Files\dotnet\sdk\2.0.0\Sdks.

En gros, si vous avez Sdk="Microsoft.NET.Sdk" dans votre .csproj, un dossier du même nom devrait exister à votre emplacement MSBuildSDKsPath.

25
Sebastian Nemeth

Vous avez le même problème lorsque vous essayez d'installer x64 .Net Core SDK installer. Événement le dotnet --info la commande me montre qu'aucun SDK n'a été trouvé.

Essayez donc d'installer x86 .Net Core SDK installer. Cela peut vous aider.

0
Vadzim Papko

Peut-être avez-vous encouragé l'erreur également après l'installation de .net core SDK 3.0, vous devez vérifier la variable d'environnement MSBuildSDKsPath après chaque installation d'un nouveau SDK. Il doit tragétiser le SDK que vous utilisez pour créer votre projet. J'utilise VS2017 avec Windows 10.

pour 2.2 SDK

C:\Program Files\dotnet\sdk\2.2.104\Sdks

pour aperçu 3.0

C:\Program Files\dotnet\sdk\3.0.100-preview3-010431\Sdks 
0
MNF