2017-09-16 49 views
7

próbuję zbudować rozwiązanie za pomocą wiersza polecenia msbuild i wciąż otrzymuję ten błąd:msbuild wyrzuca błąd: SDK „Microsoft.NET.Sdk” określony nie można znaleźć

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

wersja msbuild to najnowszy z narzędzi Microsoftu Visual Studio 2017. Używam systemu Windows Server 2012 R2, a projekt korzysta z .NET Core 2.0.

Jest to polecenie, które używam:

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

Kompletna dziennika:

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

Domyślam się, że projekt odwołuje się do SDK. Aby go zbudować, musi zostać zainstalowany. Jak inaczej kompilator mógł wykonywać typechkes i wszystkie inne rzeczy? – Christopher

+0

@ Christopher Edytowałem post z pełnym logiem. Tak, mój projekt odwołuje się do SDK, ale próbuję go przywrócić. –

+0

Tak jak myślałem. Kompilator nie może znaleźć zestawu SDK. Musisz go zainstalować wraz z kompilatorem, aby utworzyć kompilację. Idealnie wybrałeś domyślną lokalizację. Jeśli nie, może być konieczna edycja projektu, aby znaleźć pakiet SDK we właściwej lokalizacji. – Christopher

Odpowiedz

11

I napotkał ten błąd po zabawy z podstawowej instalacji .Net 2.0 i pozornie brudząc ją w górę. Ten błąd wystąpiłby dla dotnet restore, dotnet build lub dotnet msbuild. Zasadniczo wszystko, co dotyczy .Net Core i msbuild.

Wystąpił błąd, ponieważ zmienna środowiskowa MSBuildSDKsPath nadal wskazywała na stary .NET Core 1.1 SDK.

Aby rozwiązać problem, ręcznie ustawiłem zmienną środowiskową MSBuildSDKsPath, aby wskazywała ścieżkę SDK 2.0.0, która dla mnie z x64 była następująca: C:\Program Files\dotnet\sdk\2.0.0\Sdks.

Zasadniczo, jeśli masz Sdk="Microsoft.NET.Sdk" w swoim .csproj, folder o tej samej nazwie powinien istnieć w Twojej lokalizacji MSBuildSDKsPath.

Powiązane problemy