2017-10-14 62 views
0

我無法弄清楚爲什麼我所有的項目都安裝了NETStandard.Library 1.6.1。什麼是控件Visual Studio .net核心版本?

如果我在命令行中我得到以下輸出運行dotnet --version

2.1.0-preview1-007102 

我的.csproj文件看起來像這樣:

​​

的Visual Studio塊我在Visual Studio中通過的NuGet升級,所以我總是不得不手動安裝NETStandard.Library 2.0.0或搜索堆棧溢出,並將該隱式版本標記添加到.csproj中,但是爲什麼我必須這樣做?什麼是告訴視覺工作室,默認值應該是1.6?

我的意思是由安裝NETStandard.Library 2.0.0以下

enter image description here

回答

1

阻止我什麼是不應該這樣NuGet包進行手動編輯,但在你的情況下,它看上去像一箇舊版本的使用的工具不應該與netstandard2.0一起使用。

檢查項目目錄層次結構中是否包含最新的VS版本(當前爲15.4.0)和沒有global.json,該版本將SDK版本設置爲低於2.0.0的值。

另外,我建議不要使用每日構建(例如,您的2.1.0預覽)用於生產工作,因爲你需要不斷更新它是在安全方面,還是在包含項目目錄中創建一個文件global.json

{ 
    "sdk": { 
    "version": "2.0.2" 
    } 
} 

確保您使用的是「良好」版本(2.0.2是VS 2017 15.4.0附帶的版本)。這樣做後,您需要再次關閉並重新打開解決方案。

+0

我有最新的VS,甚至下載企業試用版,只是嘗試一個新的。一樣。奇怪的是,cli''dotnet build''完全按照預期工作。另外我的構建服務器構建這些沒有問題。我不知道Visual Studio是否使用不同的''dotnet''可執行文件或正在發生的事情。 –

+0

VS攜帶一個「SDK解析器」,它可以從.net核心sdk版本找到'Microsoft.NET.Sdk'文件夾。它尋找一個global.json來控制它,但應該解析爲1.1.0或2. *版本。你可以用'dotnet --info'來檢查2.1.0預覽,並嘗試刪除它。 ('dotnet'也是一個很好的指示) –

+0

謝謝,我刪除了2.0預覽SDK,以及我已經安裝的1.0預覽SDK,並且所有事情都開始按我期望的那樣工作。我不確定爲什麼預覽SDK的存在會導致這種情況,但噢,很高興將它修復! –