2016-10-11 30 views
4

.NET Standard規定了所有.NET平臺必須實現的API。它的版本規則是什麼?它是breaking.adding,其中1.4增加並保持向後兼容1.32.x是不是向後兼容1.x什麼是.NET標準版本控制規則?

該文檔不清楚。 Some Microsoft docs表明純向後兼容性:

給出一個.NET標準庫版本,您可以使用爲目標的相同或更低的版本庫。(強調增加)

現在2.0出來了,上面看起來不正確。話雖這麼說,the release blog post說:

從庫中針對.NET標準,你就可以參考[庫目標] .NET標準,如果他們的版本是低於或等於版本你的目標。(強調)說

就在同博客文章自相矛盾:

爲了讓.NET框架4.6.1支持.NET 2.0標準,我們不得不刪除所有API來自.NET Standard 1.5和1.6中引入的.NET Standard。

既然2.0已經出來了,版本控制規則是什麼?它似乎是breaking.adding。 MSFT在哪裏記錄了這一點?

回答

6

我已經在我們的On.NET episode on .NET Standard中更詳細地解釋了這一點。

一般來說,這是.NET標準是如何工作的:

  1. .NET標準將線性版本,不帶版本之間進行重大更改的意向。換句話說,您可以將.NET Standard的API表面看作同心圓,其中較高版本具有更多的API。
  2. .NET平臺的特定版本將實現特定版本的.NET標準。
  3. 在選擇.NET標準版的目標考慮這種權衡:
    • 更高的版本號,更多的API,你可以使用
    • 較低的版本號,更多的.NET平臺的支持它

那麼爲什麼會出現這種談分手的變化?簡短的答案是因爲我們在定義.NET Standard 1.x時犯了一個錯誤,並沒有考慮到平臺的影響。您應該忽略.NET Standard 1.5和1.6,並避免依賴它們。如果你這樣做,.NET標準2.0是.NET Standard 1.4的一個嚴格超集。

有關更多詳細信息,請參閱.NET標準2中的 部分。0重大更改:在my blog post on .NET Standard中添加.NET Framework 4.6.1兼容性

更新。在許多社區反饋之後,我們決定不執行這一重大改變。有關此決定的更多詳細信息在.NET Standard FAQ中列出。

相關問題