什麼是目標框架別名(What are the Target Framework Monikers (TFMs))?

FrankYou發表於2016-07-21

我們現在的.NET Core 1.0應用(ASP.NET Core 1.0應用或控制檯應用)有了新的被執行在不同框架上的可能性:①執行在.NET Core平臺上 ②執行在傳統的.NET Framework 4.5.x 上(對很多企業級應用來說仍然是一個至關重要的框架)。相對傳統的.NET Framework 4.5.x(體積大、臃腫但全面) ,.NET Core平臺棧和類庫變得更加小和輕量化了。

什麼是目標框架別名(Target Framework Monikers)

目標框架別名就是框架名稱(Framework)+版本(Version)的識別符號(ID),在你的.NET Core應用中可以指定的目標框架。

到目前為止,可以選擇使用的框架別名有如下這些:

  • “netcoreapp10”針對.NET Core 1.0
  • “net45”、“net451”、“net452”、“net46”、“net461” 針對傳統的.NET Framework版本
  • “portable-net45+win8” 針對PCL(Portable Class Libraries)--可移植的類庫
  • “dotnet5.6”、“dnxcore50”針對.NET Core預覽版(.NET Core RTM和.NET Core RC2以前的版本)
  • “netstandard1.2”、 “netstandard1.5”等針對 .NET Standard Platform

.NET平臺標準(.NET Platform Standard)

先用一張圖直觀的看看,.NET平臺標準就是要把各自為政變為一統江湖。不管是開發傳統的基於.NET Framework的應用還是開發基於.NET Core的應用,其依賴的底層類庫都是一樣的。這樣就標準化了。

 .NET Platform Standard別名"netstandard1.5"、"netstandard1.6"等的使用是有侷限性的。當我們開發ASP.NET Core應用或Console應用時我們一般指定要在其上進行構建和執行的框架(Framework)。.NET Platform Standard別名僅僅是當我們開發包/類庫時(也就是說我們是這些包/類庫的作者或擁有者)才會使用到來指定哪些框架支援各自的類庫。

通用的規則:

  • app的開發者:指定我們正在寫的目標TFM,比如:netcoreapp1.0, uap10.0 ,  net452 ,  xamarinios 等;
  • 包/類庫的 作者:指定最低版本的.NET Platform Standard,比如:netstandard1.0以便你的類庫可以向後相容。

看一個具體的project.json配置

 一般情況下我們開發.NET Core的應用時只需使用別名為:netcoreapp1.0的框架即可。

相關文章