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)
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
.
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.
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