2017-09-16 82 views
7

Ben Msbuild komut satırını kullanarak bir çözüm oluşturmak için çalışıyorum ve bu hatayı almaya devam bulunamadı Belirtilen:Msbuild hata atıyor: SDK'nın 'Microsoft.NET.Sdk'

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

msbuild sürümü, microsoft visual studio 2017 araçlarının en son sürümüdür. Windows Server 2012 R2 kullanıyorum ve proje .NET Core 2.0 kullanıyor.

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

Komple günlüğü:

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

Tahminim, projenin SDK'ya atıfta bulunmasıdır. Ve buna karşı inşa etmek için, kurulmalıdır. Derleyici başka ne tür bir şeyler yapar? – Christopher

+0

@Christopher Gönderiyi tam günlük olarak düzenledim. Ve evet, projem SDK'ya atıfta bulunuyor, fakat ben onu geri yüklemeye çalışıyorum. –

+0

Düşündüğüm gibi. Derleyici SDK'yı bulamıyor. Bir derleme yapmak için Derleyici ile birlikte yüklü gerekir. İdeal olarak varsayılan yeri seçtiniz. Değilse, projeyi düzenlemek zorunda kalabilirsiniz, böylece SDK'yı uygun konumda arar. – Christopher

cevap

11

.NET Çekirdek 2.0 yüklemesi ile oynamak ve görünüşte onu karıştırmasını sonra bu hata ile karşılaştı

Bu

kullanıyorum komut yukarı. Aynı hatayı dotnet restore, dotnet build veya dotnet msbuild için alırdım. Esasen, .Net Core ve msbuild içeren bir şey.

MSBuildSDKsPath ortam değişkeni hala eski .Net Core 1.1 SDK'ye işaret ettiğinden hata oluştu.

Sorunu gidermek için, MSBuildSDKsPath ortam değişkenini el ile, x64 ile benim için C:\Program Files\dotnet\sdk\2.0.0\Sdks adresinde olan 2.0.0'ın SDK yolunu işaret edecek şekilde ayarladım.

.csproj'unuzda Sdk="Microsoft.NET.Sdk" varsa, MSBuildSDKsPath konumunuzda aynı ada sahip bir klasör bulunmalıdır.