我們很高興地宣布發布.NET Core 2.2。它包括對運行時的診斷改進,對ARM32 for Windows和Azure Active Directory for SQL Client的支持。此版本中最大的改進是在ASP.NET Core中。
ASP.NET Core 2.2和Entity Framework Core 2.2。
您可以在Windows,macOS和Linux上下載並開始使用.NET Core 2.2:
Visual Studio 15.9,Visual Studio for Mac和Visual Studio Code 支持.NET Core 2.2 。
對於.NET Core和ASP.NET Core,可以在microsoft / dotnet上獲得Docker鏡像。
您可以在.NET Core 2.2發行說明中查看該發行版的完整詳細信息。發行說明中包含相關說明,已知問題和解決方法。請在評論或dotnet / core#2098中報告您發現的任何問題。
感謝為.NET Core 2.2做出貢獻的每個人。您已經幫助.NET Core成為更好的產品!
本次發布包含以下特性:
分層編譯(Tiered Compilation)
分層編譯是一種功能,使運行時能夠更自適應地使用實時(JIT)編譯器,以在啟動時獲得更好的性能並最大化吞吐量。它作為.NET Core 2.1中的選擇加入功能添加,然后在.NET Core 2.2 Preview 2中默認啟用。我們認為我們還沒有准備好在最終的.NET Core 2.2版本中默認啟用它,所以我們將其切換回選擇加入,就像.NET Core 2.1一樣。它在.NET Core 3.0中默認啟用,我們希望它保留在該配置中。
運行時事件(Runtime Events)
通常需要監視運行時服務(如當前進程的GC,JIT和ThreadPool),以了解這些服務在運行應用程序時的行為方式。在Windows系統上,這通常使用ETW並監視當前進程的ETW事件來完成。雖然這種方法仍然有效,但使用ETW並不總是容易或可能。無論您是在低權限環境中運行還是在Linux或macOS上運行,都可能無法使用ETW。
從.NET Core 2.2開始,現在可以使用EventListener類來使用CoreCLR事件。這些事件描述了GC,JIT,ThreadPool和interop的行為。它們是在Windows上作為CoreCLR ETW提供程序的一部分公開的相同事件。這允許應用程序使用這些事件或使用傳輸機制將它們發送到遙測聚合服務。
在SqlConnection中支持AccessToken
SQL Server的ADO.NET提供程序SqlClient現在支持將AccessToken屬性設置為使用Azure Active Directory對SQL Server連接進行身份驗證。要使用此功能,您可以使用Microsoft.IdentityModel.Clients.ActiveDirectory NuGet包中包含的Active Directory身份驗證庫for .NET獲取訪問令牌值。
以下示例顯示如何使用Azure Active目錄驗證SQL Server連接:
有關更多信息,請參閱ADAL.NET和Azure Active Directory文檔。
在Main之前注入代碼
.NET Core現在可以在通過Startup Hook運行應用程序main方法之前注入代碼。啟動掛鈎使主機可以在部署應用程序后自定義應用程序的行為,而無需重新編譯或更改應用程序。
我們希望托管服務提供商定義自定義配置和策略,包括可能影響主入口點的加載行為的設置,例如AssemblyLoadContext行為。鈎子可用於設置跟蹤或遙測注入,設置回調以進行處理或其他依賴於環境的行為。鈎子與入口點分開,因此不需要修改用戶代碼。
有關更多信息,請參閱主機啟動掛鈎
Windows ARM32
我們正在添加對Windows ARM32的支持,類似於我們在.NET Core 2.1中添加的Linux ARM32支持。Windows已經支持使用Windows IoT Core的ARM32 一段時間了。作為Windows Server 2019發行版的一部分,還為Nanoserver添加了ARM32支持。.NET Core可以在Nanoserver和IoT Core上使用。
將在Docker Hub 上的microsoft / dotnet上為ARM32的Nanoserver提供Docker。
我們遇到了一個遲到的錯誤,阻止我們今天發布針對Windows ARM32的.NET Core版本。我們預計這些版本將在2019年1月的.NET Core 2.2.1中使用。
平台支持
以下操作系統支持.NET Core 2.2:
- Windows客戶端:7,8.1,10(1607+)
- Windows Server:2008 R2 SP1 +
- macOS:10.12+
- RHEL:6+
- Fedora:26歲以上
- Ubuntu:16.04+
- Debian:9+
- SLES:12+
- openSUSE:42.3+
- Alpine: 3.7+
芯片支持如下:
- Windows,macOS和Linux上的x64
- Windows上的x86
- Linux上的ARM32(Ubuntu 16.04 +,Debian 9+)
- Windows上的ARM32(1809+; 1月份可用)
