2017-09-16 1 views
7

Je suis en train de construire une solution en ligne de commande msbuild et je continue à obtenir cette erreur:MSBUILD lance erreur: introuvable spécifié Le SDK « Microsoft.NET.Sdk »

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

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

C'est la commande que j'utilise:

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

complète journal:

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) 
+0

Je suppose que le projet fait référence à ce SDK. Et pour construire contre cela, il faut l'installer. Sinon, comment le compilateur pourrait faire typechkes et tous les autres trucs? – Christopher

+0

@Christopher J'ai édité le poste avec journal complet. Et oui, mon projet fait référence à ce SDK, mais j'essaie de le restaurer. –

+0

Comme je le pensais. Le compilateur ne peut pas trouver le SDK. Vous en avez besoin installé avec le compilateur pour faire une compilation. Idéalement, vous avez choisi l'emplacement par défaut. Si ce n'est pas le cas, vous devrez peut-être modifier le projet pour qu'il recherche le SDK dans l'emplacement approprié. – Christopher

Répondre

11

j'ai rencontré cette erreur après avoir joué avec l'installation .Net Core 2.0 et apparemment il déconner en haut J'obtiendrais la même erreur pour dotnet restore, dotnet build ou dotnet msbuild. Essentiellement, tout ce qui implique .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égler le problème, j'ai manuellement défini la variable d'environnement MSBuildSDKsPath pour pointer vers le chemin SDK de 2.0.0, qui, pour moi avec x64, était à: C:\Program Files\dotnet\sdk\2.0.0\Sdks. Fondamentalement, si vous avez Sdk="Microsoft.NET.Sdk" dans votre .csproj, alors un dossier avec le même nom devrait exister à votre emplacement MSBuildSDKsPath.