2017-08-15 378 views
6

錯誤: C:\ WebApp \ WebApp.csproj:錯誤:SDK'Microsoft.NET.Sdk.Web'指定找不到。 C:\ WebApp \ WebApp.csprojVisual studio 2017更新3 - 指定的SDK'Microsoft.NET.Sdk.Web'找不到

我想打開Dotnet核心項目,我收到上述錯誤。

我從https://www.microsoft.com/net/core#windowscmd

我已經檢查了DOTNET CMD路徑安裝了最新的SDK,它工作正常。

我錯過了什麼嗎?如果您需要更多信息,請與我們聯繫。

目標框架設置爲.NET 4.5.2

+3

你試過這個嗎? https://andrewlock.net/the-sdk-microsoft-net-sdk-web-specified-could-not-be-found/ – Will

+0

我試圖刪除文章中建議的global.json,它仍然無法正常工作。 – Sundeep

+0

如果它有幫助 - 這個問題也表現爲Visual Studio在加載項目ABC.csproj時永久掛起... – Coruscate5

回答

5

正如註釋的建議,我更新global.json文件如下所示

{ 
    "sdk": { 
    "version": "1.0.0" 
} 
} 

另外,我不得不刪除<ItemGroup>其包含.csproj文件中的wwwroot文件路徑。

enter image description here

刷新該項目,它的工作原理就像一個魅力!

+7

刪除global.json可能最好的選擇,假設你總是想要最新的SDK。在我的情況下,我有一個錯位的global.json坐在.net核心項目之上的一個文件夾中(很可能很久以前就錯誤地放在那裏了)。一旦我刪除了我的項目再次加載。 – Per

4

我同意Sundeep的回答評論,你的項目中不應該有global.json文件。

似乎安裝.NET Core 2.0 SDK正在導致PATH問題。驗證C:\Program Files\dotnetC:\Program Files (x86)\dotnet是否在PATH環境變量中。在我的情況下,這些值已經出現在System Variables下,因此我將它們添加到User Variables並重新啓動了我的機器。這解決了我的問題。

+0

在我的情況下,我安裝了32位運行時和64位SDK,32位(x86)條目在64位之前位於PATH中。在額外安裝32位SDK之後,它工作。 – MarkusSchaber

+0

我只安裝了64位SDK,但出於某種原因,我只在Path設置中擁有32位條目。我嘗試安裝32位SDK,但最終我只是在32位之前添加了64位路徑。 –

0

我遇到了一個問題,其中創建一個新的ASP.NET Core 2.0項目給了我一個錯誤指定的SDK'Microsoft.Net.Sdk.Web'找不到,並且讓我無法打開項目在Visual Studio中。問題在於該項目是在包含global.json文件的文件夾中創建的,該文件將SDK版本綁定到1.0.0。

刪除global.json,或將其更新到2.0.0,修復了問題。一定要檢查父文件夾 - 如果任何父文件夾包含global.json,則將使用在「最接近」文件夾中指定的SDK版本。

2

我遇到過同樣的問題,我只是重新命名<project sdk="Microsoft.NET.Sdk.web"><project sdk="Microsoft.NET.Sdk">上的csproj

1

我最近多次偶然發現了這個問題。下面是我找到了解決方法(其中一人經常工作到現在)的簡短列表:

  1. 安裝正確的.NET核心SDK:無論是最新版本,或者通過你的項目所需要的版本。
  2. 清理過時.NET核版本:進入控制面板和卸載以前的.NET核心SDK /運行時版本(只要你不再使用它們)。
  3. 創建一個全局。json文件:使用以下內容將新的global.json文件添加到項目的根目錄中(將.NET Core版本替換爲要運行該項目的內核版本):

    { 「sdk」:{ 「版本」: 「2.0.5」 }}

  4. 重命名SDK參考:打開.proj文件,並替換<project sdk="Microsoft.NET.Sdk"><project sdk="Microsoft.NET.Sdk.web">

  5. 添加MSBuildSDKsPath環境變量:本DOTNET CLI設置MSBuildSDKsPath環境變量調用的MSBuild時:但是,a December 2016 patch改變了CLI行爲,以便將尊重現有環境變量,如果它已經被設置:此將允許開發人員「強制」CLI使用特定的SDK。

  6. 檢查您的PATH:驗證C:\Program Files\dotnetC:\Program Files (x86)\dotnet都在PATH環境變量中。

有關該問題和其他可行性修復的其他信息,read this post

0

我有這個問題,當我不得不在VS2017中打開.Net Core 1.0.4項目。

當我安裝1.0.4 SDK,我選擇了它放置在SDK文件x64版本「C:\ Program Files文件\ DOTNET」 ......

但我VS2017是32位,因此一直在尋找'c:\ Program Files(x86)\ dotnet'中的sdk。

一旦我安裝了SDK的32位版本,它工作得很好。

相關問題