.NET Core 項目指定SDK版本


一. 版本里的坑

自從 .NET Core 2.1.0版本發布以后,近幾個月微軟又進行了幾次小版本的發布,可見 .NET Core 是一門生命力非常活躍的技術。經過一段時間的實踐,目前做 ASP.NET Core 開發時,使用的 Nuget 包,比如 Microsoft.AspNetCore.App 等的版本號要與 .NET Core 版本號(不是SDK版本號,后續說明)保持一致,否則編譯或者運行的時候可能會出現一些稀奇古怪的錯誤,比如 Microsoft.AspNetCore.App 2.1.0版本對應 .NET Core 2.1.0版本,這可謂是一個坑。

二. 版本對照

.NET Core 版本 SDK 版本 Runtime 版本
2.1.2 2.1.400 2.1.2
2.1.2 2.1.302 2.1.2
2.1.1 2.1.301 2.1.1
2.1.0 2.1.300 2.1.0

以上數據來自官方:https://www.microsoft.com/net/download/dotnet-core/2.1

三. 指定項目使用的 SDK 版本

前幾天 Visual Studio 2017 推送了 15.8 版本,此版本自帶了 .NET Core 2.1.2 (SDK版本 2.1.400),由於公司的項目使用的 .NET Core 2.1.0 版本(SDK版本 2.1.300),在編譯的時候直接報錯了。這是因為 .NET Core 項目默認使用最新版本的 .NET Core,我們的Nuget包沒有進行升級,所以報錯了。最終我們采用了指定項目SDK版本來解決了。操作如下:

項目的根目錄打開cmd,執行命令即可:

dotnet new global.json --sdk-version <SDK版本號>

要注意的是最后的參數是SDK版本,不是.NET Core 版本,可參照上表。

可在項目根目錄執行命令來檢查,看看是否與設置的SDK版本號一致:

dotnet --version

操作演示:

1534690144487

global.json 文件內容:

{
  "sdk": {
    "version": "2.1.300"
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM