2017-09-16 1 views
7

finden Ich versuche, eine Lösung mit msbuild Befehlszeile zu bauen, und ich erhalte immer diese Fehlermeldung:MSBUILD wirft Fehler: Die ‚Microsoft.NET.Sdk‘ SDK angegeben konnte nicht

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

Die Version von Msbuild ist das neueste von Microsoft Visual Studio 2017 Tools. Ich verwende Windows Server 2012 R2 und das Projekt verwendet .NET Core 2.0.

Dies ist der Befehl, den ich verwende:

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

Vollständiges Protokoll:

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

Meine Vermutung wäre, dass das Projekt SDK verweist. Und um dagegen zu bauen, muss es installiert werden. Wie sonst könnte der Compiler chechkes und all die anderen Sachen schreiben? – Christopher

+0

@Christopher Ich bearbeitete den Beitrag mit komplettem Protokoll. Und ja, mein Projekt verweist auf dieses SDK, aber ich versuche es wiederherzustellen. –

+0

Wie ich dachte. Der Compiler kann das SDK nicht finden. Sie müssen es zusammen mit dem Compiler installieren, um einen Build zu erstellen. Im Idealfall haben Sie den Standardstandort ausgewählt. Wenn nicht, müssen Sie möglicherweise das Projekt bearbeiten, damit es am richtigen Speicherort nach dem SDK sucht. – Christopher

Antwort

11

ich diesen Fehler nach um mit .Net Core 2.0 Installation zu spielen und bringt ihn scheinbar oben. Ich würde diesen gleichen Fehler für dotnet restore, dotnet build oder dotnet msbuild bekommen. Im Wesentlichen alles, was .Net Core und Msbuild betrifft.

Der Fehler trat auf, weil die MSBuildSDKsPath Umgebungsvariable immer noch auf das alte .Net Core 1.1 SDK zeigte.

Um das Problem zu beheben, setze ich die Umgebungsvariable MSBuildSDKsPath manuell so, dass sie auf den SDK-Pfad von 2.0.0 zeigt. Für mich mit x64 war dies: C:\Program Files\dotnet\sdk\2.0.0\Sdks.

Grundsätzlich, wenn Sie Sdk="Microsoft.NET.Sdk" in Ihrem .csproj haben, dann sollte ein Ordner mit dem gleichen Namen an Ihrem Standort MSBuildSDKsPath existieren.

Verwandte Themen