From 2983edef416f1c96dde784652165c27ef62bb7de Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Thu, 11 Apr 2024 09:31:44 -0700 Subject: [PATCH] Artifacts for .NET 9.0 Preview 3 Release (#9268) * Artifacts for .NET 9.0 Preview 3 Release * Update releases-index.json --- README.md | 4 +- release-notes/9.0/README.md | 7 + .../9.0/preview/preview3/9.0.0-preview.3.md | 822 ++++++++++++++++++ release-notes/9.0/preview/preview3/README.md | 29 + .../9.0/preview/preview3/aspnetcore.md | 63 ++ .../9.0/preview/preview3/dotnetmaui.md | 77 ++ .../9.0/preview/preview3/efcoreanddata.md | 37 + .../9.0/preview/preview3/libraries.md | 233 +++++ .../aspnetcore-dev-page-endpoint-metadata.png | Bin 0 -> 72362 bytes .../media/terminallogger-multiline-after.png | Bin 0 -> 44435 bytes .../media/terminallogger-multiline-before.png | Bin 0 -> 55362 bytes release-notes/9.0/preview/preview3/runtime.md | 72 ++ release-notes/9.0/preview/preview3/sdk.md | 91 ++ release-notes/9.0/releases.json | 514 ++++++++++- release-notes/README.md | 4 +- release-notes/releases-index.json | 8 +- releases.md | 4 +- 17 files changed, 1951 insertions(+), 14 deletions(-) create mode 100644 release-notes/9.0/preview/preview3/9.0.0-preview.3.md create mode 100644 release-notes/9.0/preview/preview3/README.md create mode 100644 release-notes/9.0/preview/preview3/aspnetcore.md create mode 100644 release-notes/9.0/preview/preview3/dotnetmaui.md create mode 100644 release-notes/9.0/preview/preview3/efcoreanddata.md create mode 100644 release-notes/9.0/preview/preview3/libraries.md create mode 100644 release-notes/9.0/preview/preview3/media/aspnetcore-dev-page-endpoint-metadata.png create mode 100644 release-notes/9.0/preview/preview3/media/terminallogger-multiline-after.png create mode 100644 release-notes/9.0/preview/preview3/media/terminallogger-multiline-before.png create mode 100644 release-notes/9.0/preview/preview3/runtime.md create mode 100644 release-notes/9.0/preview/preview3/sdk.md diff --git a/README.md b/README.md index 56eae1b5..875f4d94 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ The following [.NET releases](./releases.md) are currently supported: | Version | Release Date | Support | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | -| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.2][9.0.0-preview.2] | | +| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.3][9.0.0-preview.3] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.4][8.0.4] | November 10, 2026 | | [.NET 7](release-notes/7.0/README.md) | [November 8, 2022](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/) | [STS][policies] | [7.0.18][7.0.18] | May 14, 2024 | | [.NET 6](release-notes/6.0/README.md) | [November 8, 2021](https://devblogs.microsoft.com/dotnet/announcing-net-6/) | [LTS][policies] | [6.0.29][6.0.29] | November 12, 2024 | @@ -26,7 +26,7 @@ The following [.NET releases](./releases.md) are currently supported: You can find release notes for all releases, including out-of-support releases, in the [release-notes](release-notes) directory. -[9.0.0-preview.2]: release-notes/9.0/preview/preview2/9.0.0-preview.2.md +[9.0.0-preview.3]: release-notes/9.0/preview/preview3/9.0.0-preview.3.md [8.0.4]: release-notes/8.0/8.0.4/8.0.4.md [7.0.18]: release-notes/7.0/7.0.18/7.0.18.md [6.0.29]: release-notes/6.0/6.0.29/6.0.29.md diff --git a/release-notes/9.0/README.md b/release-notes/9.0/README.md index 0da77cc2..c5be79c2 100644 --- a/release-notes/9.0/README.md +++ b/release-notes/9.0/README.md @@ -13,29 +13,36 @@ | Date | Release | | :-- | :-- | +| 2024/04/11 | [9.0.0 Preview 3](preview/preview3/README.md) | | 2024/03/12 | [9.0.0 Preview 2](preview/preview2/README.md) | | 2024/02/13 | [9.0.0 Preview 1](preview/preview1/README.md) | ### .NET Libraries * [Preview 1](preview/preview1/libraries.md) * Preview 2: No release notes +* [Preview 3](preview/preview3/libraries.md) ### .NET Runtime * [Preview 1](preview/preview1/runtime.md) * [Preview 2](preview/preview2/runtime.md) +* [Preview 3](preview/preview3/runtime.md) ### .NET SDK * [Preview 1](preview/preview1/sdk.md) * [Preview 2](preview/preview2/sdk.md) +* [Preview 3](preview/preview3/sdk.md) ### ASP.NET Core * [Preview 1](preview/preview1/aspnetcore.md) * [Preview 2](preview/preview2/aspnetcore.md) +* [Preview 3](preview/preview3/aspnetcore.md) ### .NET MAUI * [Preview 1](preview/preview1/dotnetmaui.md) * [Preview 2](preview/preview2/dotnetmaui.md) +* [Preview 3](preview/preview3/dotnetmaui.md) ### Entity Framework Core * [Preview 1](preview/preview1/efcoreanddata.md) * [Preview 2](preview/preview2/efcoreanddata.md) +* [Preview 3](preview/preview3/efcoreanddata.md) diff --git a/release-notes/9.0/preview/preview3/9.0.0-preview.3.md b/release-notes/9.0/preview/preview3/9.0.0-preview.3.md new file mode 100644 index 00000000..a8bb0db2 --- /dev/null +++ b/release-notes/9.0/preview/preview3/9.0.0-preview.3.md @@ -0,0 +1,822 @@ +# .NET 9 Preview 3 Binaries + +.NET 9 Preview 3 installers and binaries can be downloaded for the following product versions: + +- `.NET 9.0.0 Preview 3` +- `.NET SDK 9.0.100-preview.3.24204.13` + +See [README.md](README.md) for .NET 9 release notes and discussions. + +The latest .NET releases are always listed at [.NET Releases](../../README.md). + +## Downloads + +| | SDK Installer1 | SDK Binaries1 | Runtime Installer | Runtime Binaries | ASP.NET Core Runtime |Windows Desktop Runtime | +| --------- | :------------------------------------------: | :----------------------: | :---------------------------: | :-------------------------: | :-----------------: | :-----------------: | +| Windows | [x86][dotnet-sdk-win-x86.exe] \| [x64][dotnet-sdk-win-x64.exe] \| [Arm64][dotnet-sdk-win-arm64.exe] | [x86][dotnet-sdk-win-x86.zip] \| [x64][dotnet-sdk-win-x64.zip] \| [Arm64][dotnet-sdk-win-arm64.zip] | [x86][dotnet-runtime-win-x86.exe] \| [x64][dotnet-runtime-win-x64.exe] \| [Arm64][dotnet-runtime-win-arm64.exe] | [x86][dotnet-runtime-win-x86.zip] \| [x64][dotnet-runtime-win-x64.zip] \| [Arm64][dotnet-runtime-win-arm64.zip] | [x86][aspnetcore-runtime-win-x86.exe] \| [x64][aspnetcore-runtime-win-x64.exe] \|
[Hosting Bundle][dotnet-hosting-win.exe]2 | [x86][windowsdesktop-runtime-win-x86.exe] \| [x64][windowsdesktop-runtime-win-x64.exe] \| [Arm64][windowsdesktop-runtime-win-arm64.exe] | +| macOS | [x64][dotnet-sdk-osx-x64.pkg] \| [ARM64][dotnet-sdk-osx-arm64.pkg] | [x64][dotnet-sdk-osx-x64.tar.gz] \| [ARM64][dotnet-sdk-osx-arm64.tar.gz] | [x64][dotnet-runtime-osx-x64.pkg] \| [ARM64][dotnet-runtime-osx-arm64.pkg] | [x64][dotnet-runtime-osx-x64.tar.gz] \| [ARM64][dotnet-runtime-osx-arm64.tar.gz]| [x64][aspnetcore-runtime-osx-x64.tar.gz] \| [ARM64][aspnetcore-runtime-osx-arm64.tar.gz] | - |1 +| Linux | [Snap and Package Manager](../../install-linux.md) | [x64][dotnet-sdk-linux-x64.tar.gz] \| [Arm][dotnet-sdk-linux-arm.tar.gz] \| [Arm64][dotnet-sdk-linux-arm64.tar.gz] \| [Arm32 Alpine][dotnet-sdk-linux-musl-arm.tar.gz] \| [x64 Alpine][dotnet-sdk-linux-musl-x64.tar.gz] | [Packages (x64)][linux-packages] | [x64][dotnet-runtime-linux-x64.tar.gz] \| [Arm][dotnet-runtime-linux-arm.tar.gz] \| [Arm64][dotnet-runtime-linux-arm64.tar.gz] \| [Arm32 Alpine][dotnet-runtime-linux-musl-arm.tar.gz] \| [Arm64 Alpine][dotnet-runtime-linux-musl-arm64.tar.gz] \| [x64 Alpine][dotnet-runtime-linux-musl-x64.tar.gz] | [x64][aspnetcore-runtime-linux-x64.tar.gz]1 \| [Arm][aspnetcore-runtime-linux-arm.tar.gz]1 \| [Arm64][aspnetcore-runtime-linux-arm64.tar.gz]1 \| [x64 Alpine][aspnetcore-runtime-linux-musl-x64.tar.gz] | - | 1 | +| | [Checksums][checksums-sdk] | [Checksums][checksums-sdk] | [Checksums][checksums-runtime] | [Checksums][checksums-runtime] | [Checksums][checksums-runtime] | [Checksums][checksums-runtime] + + +1. Includes the .NET Runtime and ASP.NET Core Runtime +2. For hosting stand-alone apps on Windows Servers. Includes the ASP.NET Core Module for IIS and can be installed separately on servers without installing .NET Runtime. + + +The .NET SDK includes a matching updated .NET Runtime. Downloading the Runtime or ASP.NET Core packages is not needed when installing the SDK. + +You can check your .NET SDK version by running the following command. The example version shown is for this release. + +```console +$ dotnet --version +9.0.100-preview.3.24204.13 +``` + +## .NET Multi-Platform App UI (MAUI) Workload Downloads + + After installing the .NET SDK, you can install .NET MAUI using the `dotnet workload install` command: + + ```console + $ dotnet workload install maui + ``` + + The following workloads are also available to install individually: + + ```console + $ dotnet workload install android + $ dotnet workload install ios + $ dotnet workload install maccatalyst + $ dotnet workload install macos + $ dotnet workload install tvos + ``` + +## Docker Images + +The [.NET Docker images](https://hub.docker.com/_/microsoft-dotnet) have been updated for this release. The [.NET Docker samples](https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md) show various ways to use .NET and Docker together. You can use the following command to try running the latest .NET 9.0 release in containers: + +```console +docker run --rm mcr.microsoft.com/dotnet/samples +``` + +The following repos have been updated. + +* [dotnet/sdk](https://hub.docker.com/_/microsoft-dotnet-sdk/): .NET SDK +* [dotnet/aspnet](https://hub.docker.com/_/microsoft-dotnet-aspnet/): ASP.NET Core Runtime +* [dotnet/runtime](https://hub.docker.com/_/microsoft-dotnet-runtime/): .NET Runtime +* [dotnet/runtime-deps](https://hub.docker.com/_/microsoft-dotnet-runtime-deps/): .NET Runtime Dependencies +* [dotnet/samples](https://hub.docker.com/_/microsoft-dotnet-samples/): .NET Samples + +## Visual Studio Compatibility + +.NET 9 is compatible with [Visual Studio 17.10 latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://dotnet.microsoft.com/download/dotnet/9.0) and install the .NET 9 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 9.0 Preview releases. + + +## Feedback + +Your feedback is important and appreciated. We've created an issue at https://aka.ms/dotnet/9/preview3 for your questions and comments. + +## Packages updated in this release: + +Package name | Version +:----------- | :------------------ +Microsoft.WindowsDesktop.App.Runtime.win-x64 | 9.0.0-preview.3.24175.3 +Microsoft.WindowsDesktop.App.Ref | 9.0.0-preview.3.24175.3 +Microsoft.Windows.Compatibility | 9.0.0-preview.3.24175.3 +Microsoft.WindowsDesktop.App.Runtime.win-arm64 | 9.0.0-preview.3.24175.3 +Microsoft.WindowsDesktop.App.Runtime.win-x86 | 9.0.0-preview.3.24175.3 +Microsoft.NETCore.App.Crossgen2.linux-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.wasi-wasm | 9.0.0-preview.3.24172.9 +runtime.android-arm.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-x86 | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +Microsoft.Bcl.Cryptography | 9.0.0-preview.3.24172.9 +Microsoft.Bcl.AsyncInterfaces | 9.0.0-preview.3.24172.9 +Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.Abstractions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.Binder | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-9.0.100-preview.3.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-9.0.100-preview.3.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.linux-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-9.0.100-preview.3.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-9.0.100-preview.3.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.linux-musl-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.linux-musl-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.win-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.wasi-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.linux-bionic-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.linux-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.iossimulator-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.osx-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-x64.Msi.arm64 | 9.0.0-preview.3.24172.9 +runtime.linux-bionic-x64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm64.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm64.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.linux-musl-x64.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.win-arm64.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.win-x64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +System.ComponentModel.Composition | 9.0.0-preview.3.24172.9 +System.Composition | 9.0.0-preview.3.24172.9 +System.ComponentModel.Composition.Registration | 9.0.0-preview.3.24172.9 +System.Diagnostics.DiagnosticSource | 9.0.0-preview.3.24172.9 +System.Resources.Extensions | 9.0.0-preview.3.24172.9 +System.Security.Cryptography.Cose | 9.0.0-preview.3.24172.9 +System.Runtime.Serialization.Schema | 9.0.0-preview.3.24172.9 +System.ServiceModel.Syndication | 9.0.0-preview.3.24172.9 +System.Security.Cryptography.ProtectedData | 9.0.0-preview.3.24172.9 +System.Security.Cryptography.Xml | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.iOS.Sample.Mono | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.MonoAOTCompiler.Task | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Templates | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Templates.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Templates.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.linux-arm | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-9.0.100-preview.3.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-9.0.100-preview.3.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.ios-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvos-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.linux-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.linux-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.linux-musl-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.ios-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.osx-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.tvossimulator-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.tvossimulator-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-x86.Msi.arm64 | 9.0.0-preview.3.24172.9 +runtime.linux-arm64.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +runtime.linux-arm.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.linux-arm.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.linux-arm.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.linux-x64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.maccatalyst-x64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.osx-x64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.win-arm64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.win-x86.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +System.Data.Odbc | 9.0.0-preview.3.24172.9 +System.Composition.Hosting | 9.0.0-preview.3.24172.9 +System.Formats.Cbor | 9.0.0-preview.3.24172.9 +System.Formats.Asn1 | 9.0.0-preview.3.24172.9 +System.IO.Pipelines | 9.0.0-preview.3.24172.9 +System.IO.Ports | 9.0.0-preview.3.24172.9 +System.Speech | 9.0.0-preview.3.24172.9 +System.Security.Cryptography.Pkcs | 9.0.0-preview.3.24172.9 +System.Text.Json | 9.0.0-preview.3.24172.9 +System.Windows.Extensions | 9.0.0-preview.3.24172.9 +System.IO.Packaging | 9.0.0-preview.3.24172.9 +System.Threading.Tasks.Dataflow | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.Xml | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.EnvironmentVariables | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.Json | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.UserSecrets | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.FileProviders.Composite | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Hosting.WindowsServices | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Hosting.Abstractions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Logging | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Logging.Abstractions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Options.DataAnnotations | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.MonoTargets.Sdk | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.wasm.Sample.Mono | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Sdk | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Templates.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Sdk.IL | 9.0.0-preview.3.24172.9 +Microsoft.NET.WebAssembly.Threading | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-9.0.100-preview.3 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-9.0.100-preview.3 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-9.0.100-preview.3.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.win-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.win-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.wasi-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.wasi-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.LLVM.AOT.linux-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.LLVM.AOT.linux-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.win-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.osx-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-x86.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +Microsoft.Win32.Registry.AccessControl | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +runtime.linux-arm64.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.linux-arm64.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.osx-arm64.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.osx-arm64.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.osx-x64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.osx-x64.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.win-x64.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.win-x64.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +System.Composition.Convention | 9.0.0-preview.3.24172.9 +System.Text.Encoding.CodePages | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.linux-musl-arm | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-9.0.100-preview.3.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-9.0.100-preview.3.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-9.0.100-preview.3 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-9.0.100-preview.3 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.linux-musl-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.osx-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.linux-bionic-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.win-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.linux-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.linux-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.linux-musl-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.osx-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.osx-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.wasi-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.linux-musl-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.linux-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.LLVM.AOT.osx-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.linux-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvos-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.win-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.maccatalyst-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.maccatalyst-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.osx-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-x86 | 9.0.0-preview.3.24172.9 +runtime.android-arm64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.android-x64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.linux-bionic-arm64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.osx-arm64.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +runtime.linux-musl-x64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.win-x86.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.win-x86.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +System.CodeDom | 9.0.0-preview.3.24172.9 +System.Collections.Immutable | 9.0.0-preview.3.24172.9 +System.IO.Hashing | 9.0.0-preview.3.24172.9 +System.Net.Http.Json | 9.0.0-preview.3.24172.9 +System.Runtime.Caching | 9.0.0-preview.3.24172.9 +System.Reflection.Metadata | 9.0.0-preview.3.24172.9 +System.Reflection.MetadataLoadContext | 9.0.0-preview.3.24172.9 +System.ServiceProcess.ServiceController | 9.0.0-preview.3.24172.9 +System.Threading.Channels | 9.0.0-preview.3.24172.9 +System.Text.Encodings.Web | 9.0.0-preview.3.24172.9 +dotnet-ilverify | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.FileExtensions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.DependencyInjection | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.DependencyInjection.Abstractions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Diagnostics.Abstractions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.FileProviders.Abstractions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Hosting.Systemd | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Logging.Debug | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.LibraryBuilder.Sdk | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.linux-bionic-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Ref | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x86.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.LLVM.linux-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.LLVM.osx-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.win-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-arm | 9.0.0-preview.3.24172.9 +runtime.linux-arm.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.linux-arm.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.linux-musl-arm64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.osx-x64.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +runtime.linux-x64.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +runtime.linux-x64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.linux-x64.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.osx-arm64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.osx-x64.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.win-arm64.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.win-x64.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Logging.Console | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Logging.Configuration | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Logging.TraceSource | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.Android.Sample.Mono | 9.0.0-preview.3.24172.9 +Microsoft.NET.ILLink.Tasks | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-9.0.100-preview.3.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-9.0.100-preview.3.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-9.0.100-preview.3.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.linux-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.wasi-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.linux-musl-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.linux-bionic-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.LLVM.linux-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.osx-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.wasi-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.iossimulator-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.tvos-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.win-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-arm64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-arm64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-x64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-x64.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-x86.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.XmlSerializer.Generator | 9.0.0-preview.3.24172.9 +runtime.android-x86.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.linux-bionic-arm64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +System.Security.Permissions | 9.0.0-preview.3.24172.9 +System.Threading.AccessControl | 9.0.0-preview.3.24172.9 +System.Threading.RateLimiting | 9.0.0-preview.3.24172.9 +Microsoft.Bcl.Numerics | 9.0.0-preview.3.24172.9 +Microsoft.Bcl.TimeProvider | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Caching.Abstractions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Caching.Memory | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.Ini | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Configuration.CommandLine | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.DependencyInjection.Specification.Tests | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.DependencyModel | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Diagnostics | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.FileProviders.Physical | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.FileSystemGlobbing | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Http | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Hosting | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Logging.EventLog | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Logging.EventSource | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Options | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Options.ConfigurationExtensions | 9.0.0-preview.3.24172.9 +Microsoft.Extensions.Primitives | 9.0.0-preview.3.24172.9 +Microsoft.ILVerification | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NET.Sdk.WebAssembly.Pack | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.osx-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.linux-musl-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Crossgen2.win-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Host.win-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.x86 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.ios-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.linux-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.osx-x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-arm | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-arm64 | 9.0.0-preview.3.24172.9 +Microsoft.NETCore.App.Runtime.win-arm64.Msi.x64 | 9.0.0-preview.3.24172.9 +Microsoft.Win32.SystemEvents | 9.0.0-preview.3.24172.9 +runtime.linux-arm64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +runtime.linux-bionic-x64.Microsoft.NETCore.DotNetAppHost | 9.0.0-preview.3.24172.9 +runtime.linux-musl-x64.Microsoft.NETCore.ILAsm | 9.0.0-preview.3.24172.9 +runtime.linux-x64.Microsoft.NETCore.ILDAsm | 9.0.0-preview.3.24172.9 +runtime.maccatalyst-arm64.runtime.native.System.IO.Ports | 9.0.0-preview.3.24172.9 +runtime.win-x86.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +runtime.win-arm64.Microsoft.DotNet.ILCompiler | 9.0.0-preview.3.24172.9 +System.Composition.AttributedModel | 9.0.0-preview.3.24172.9 +System.Data.OleDb | 9.0.0-preview.3.24172.9 +System.Composition.Runtime | 9.0.0-preview.3.24172.9 +System.Composition.TypedParts | 9.0.0-preview.3.24172.9 +System.Configuration.ConfigurationManager | 9.0.0-preview.3.24172.9 +System.DirectoryServices | 9.0.0-preview.3.24172.9 +System.Diagnostics.PerformanceCounter | 9.0.0-preview.3.24172.9 +System.Diagnostics.EventLog | 9.0.0-preview.3.24172.9 +System.DirectoryServices.AccountManagement | 9.0.0-preview.3.24172.9 +System.DirectoryServices.Protocols | 9.0.0-preview.3.24172.9 +System.Management | 9.0.0-preview.3.24172.9 +System.Memory.Data | 9.0.0-preview.3.24172.9 +System.Net.Http.WinHttpHandler | 9.0.0-preview.3.24172.9 +System.Numerics.Tensors | 9.0.0-preview.3.24172.9 +System.Reflection.Context | 9.0.0-preview.3.24172.9 +Microsoft.AspNetCore.App.Runtime.linux-musl-arm64 | 9.0.0-preview.3.24172.13 +AspNetCoreRuntime.9.0.x86 | 9.0.0-preview-3-24172-13 +Microsoft.AspNetCore.App.Runtime.linux-arm64 | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Runtime.linux-musl-arm | 9.0.0-preview.3.24172.13 +Microsoft.DotNet.Web.ItemTemplates.9.0 | 9.0.0-preview.3.24172.13 +Microsoft.DotNet.Web.ProjectTemplates.9.0 | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Identity.Core | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Runtime.linux-arm | 9.0.0-preview.3.24172.13 +AspNetCoreRuntime.9.0.x64 | 9.0.0-preview-3-24172-13 +Microsoft.AspNetCore.App.Runtime.win-arm64 | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.Certificate | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.WebAssembly.Authentication | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.Web | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.ApiDescription.Client | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Caching.StackExchangeRedis | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Caching.SqlServer | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Logging.AzureAppServices | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Runtime.linux-x64 | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.Facebook | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.AzureAppServices.HostingStartup | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.AzureAppServicesIntegration | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.Authorization | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.CustomElements | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.QuickGrid.EntityFrameworkAdapter | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.Forms | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.WebAssembly.Server | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.WebAssembly | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.ConcurrencyLimiter | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Cryptography.Internal | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.DataProtection.Abstractions | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.HeaderPropagation | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Hosting.WindowsServices | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.MiddlewareAnalysis | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Identity.UI | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Http.Connections.Common | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Identity.EntityFrameworkCore | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Mvc.NewtonsoftJson | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Metadata | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Mvc.Testing | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SignalR.Common | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SignalR.Protocols.Json | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SignalR.Protocols.MessagePack | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.WebUtilities | 9.0.0-preview.3.24172.13 +Microsoft.Authentication.WebAssembly.Msal | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.TestHost | 9.0.0-preview.3.24172.13 +Microsoft.dotnet-openapi | 9.0.0-preview.3.24172.13 +Microsoft.DotNet.Web.Client.ItemTemplates | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.FileProviders.Embedded | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Features | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Localization.Abstractions | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Localization | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Runtime.linux-musl-x64 | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Runtime.osx-x64 | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Runtime.win-x64 | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Runtime.win-x86 | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.JwtBearer | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.MicrosoftAccount | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.OpenIdConnect | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.Negotiate | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.Twitter | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.WsFederation | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.Analyzers | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Http.Connections.Client | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.QuickGrid | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.WebView | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Connections.Abstractions | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.DataProtection.EntityFrameworkCore | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.DataProtection.Extensions | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.DataProtection.StackExchangeRedis | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Grpc.JsonTranscoding | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Diagnostics.HealthChecks | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Configuration.KeyPerFile | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Http.Polly | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.Identity.Stores | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Runtime.osx-arm64 | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.DataProtection | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Cryptography.KeyDerivation | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Grpc.Swagger.0 | 9.0-preview.3.24172.13 +Microsoft.AspNetCore.Owin | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SignalR.Client.Core | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.ApiDescription.Server | 9.0.0-preview.3.24172.13 +dotnet-sql-cache | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.App.Ref | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authentication.Google | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Authorization | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Components.WebAssembly.DevServer | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.JsonPatch | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.OutputCaching.StackExchangeRedis | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.OpenApi | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SignalR.Client | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SignalR.Specification.Tests | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SignalR.StackExchangeRedis | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SpaServices.Extensions | 9.0.0-preview.3.24172.13 +Microsoft.AspNetCore.SpaProxy | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.ObjectPool | 9.0.0-preview.3.24172.13 +Microsoft.Extensions.WebEncoders | 9.0.0-preview.3.24172.13 +Microsoft.Net.Http.Headers | 9.0.0-preview.3.24172.13 +Microsoft.JSInterop | 9.0.0-preview.3.24172.13 +Microsoft.JSInterop.WebAssembly | 9.0.0-preview.3.24172.13 +FSharp.Compiler.Service | 43.8.300-preview.24178.1 +Microsoft.NET.Build.Containers | 9.0.100-preview.3.24204.14 +Microsoft.DotNet.ApiCompat.Task | 9.0.100-preview.3.24204.14 +Microsoft.DotNet.Common.ItemTemplates | 9.0.100-preview.3.24204.14 +Microsoft.DotNet.Common.ProjectTemplates.9.0 | 9.0.100-preview.3.24204.14 +Microsoft.DotNet.ApiCompat.Tool | 9.0.100-preview.3.24204.14 +FSharp.Core | 8.0.300-beta.24178.1 +System.Drawing.Common | 9.0.0-preview.3.24172.9 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.osx-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.osx-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.osx-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.osx-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.linux-musl-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.linux-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.linux-musl-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.linux-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.win-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100-preview.3.Msi.x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net6.Manifest-9.0.100-preview.3.Msi.x86 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.win-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net7.Manifest-9.0.100-preview.3.Msi.x86 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net8.Manifest-9.0.100-preview.3.Msi.arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net8.Manifest-9.0.100-preview.3.Msi.x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.win-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.osx-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.win-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.win-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.win-arm64.Msi.arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-x64.Msi.x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100-preview.3.Msi.arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.win-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.linux-musl-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Python.osx-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.linux-musl-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.win-arm64.Msi.arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-arm64.Msi.arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100-preview.3.Msi.x86 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net6.Manifest-9.0.100-preview.3.Msi.arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100-preview.3 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.linux-musl-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net6.Manifest-9.0.100-preview.3 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net7.Manifest-9.0.100-preview.3 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.linux-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.linux-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.linux-musl-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Python.osx-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.linux-x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.win-x64.Msi.x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.win-x64.Msi.x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.win-x64.Msi.x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.win-arm64.Msi.arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net6.Manifest-9.0.100-preview.3.Msi.x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net7.Manifest-9.0.100-preview.3.Msi.arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net7.Manifest-9.0.100-preview.3.Msi.x64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net8.Manifest-9.0.100-preview.3 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.linux-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Node.osx-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-arm64 | 9.0.0-preview.3.24171.4 +Microsoft.NET.Workload.Emscripten.net8.Manifest-9.0.100-preview.3.Msi.x86 | 9.0.0-preview.3.24171.4 +Microsoft.Data.Sqlite | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Proxies | 9.0.0-preview.3.24172.4 +Microsoft.Data.Sqlite.Core | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Abstractions | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Analyzers | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.AspNet.Specification.Tests | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Sqlite | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Sqlite.Core | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.SqlServer | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.SqlServer.Abstractions | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Templates | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Relational | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Relational.Specification.Tests | 9.0.0-preview.3.24172.4 +dotnet-ef | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Cosmos | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Design | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.InMemory | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Specification.Tests | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.SqlServer.HierarchyId | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Tasks | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite | 9.0.0-preview.3.24172.4 +Microsoft.EntityFrameworkCore.Tools | 9.0.0-preview.3.24172.4 +Microsoft.TemplateEngine.Authoring.Templates | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Samples | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Authoring.CLI | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Authoring.Tasks | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Abstractions | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Orchestrator.RunnableProjects | 9.0.100-preview.3.24174.1 +Microsoft.TemplateSearch.Common | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Authoring.TemplateVerifier | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.TemplateLocalizer.Core | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Core | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.IDE | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Core.Contracts | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Edge | 9.0.100-preview.3.24174.1 +Microsoft.TemplateEngine.Utils | 9.0.100-preview.3.24174.1 +Microsoft.CodeAnalysis.RulesetToEditorconfigConverter | 3.11.0-beta1.24165.2 +Microsoft.CodeAnalysis.Analyzers | 3.11.0-beta1.24165.2 +Microsoft.CodeAnalysis.AnalyzerUtilities | 3.11.0-beta1.24165.2 +Text.Analyzers | 3.11.0-beta1.24165.2 +Microsoft.CodeAnalysis.Metrics | 4.0.0-beta1.24165.2 +Roslyn.Diagnostics.Analyzers | 3.11.0-beta1.24165.2 +Microsoft.CodeAnalysis.BannedApiAnalyzers | 3.11.0-beta1.24165.2 +Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers | 3.11.0-beta1.24165.2 +Microsoft.CodeAnalysis.PublicApiAnalyzers | 3.11.0-beta1.24165.2 +Microsoft.CodeAnalysis.ResxSourceGenerator | 3.11.0-beta1.24165.2 +Microsoft.CodeAnalysis.NetAnalyzers | 9.0.0-preview.24165.2 + + + +[blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ +[blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ +[release-notes]: https://github.com/dotnet/core/blob/main/release-notes/9.0/preview3/9.0.0-preview.3.md + +[checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.3-sha.txt +[checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.3-sha.txt + +[linux-install]: https://learn.microsoft.com/dotnet/core/install/linux +[linux-setup]: https://github.com/dotnet/core/blob/main/Documentation/linux-setup.md + +[dotnet-blog]: https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-3 +[aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-preview-3/ +[ef-blog]: https://devblogs.microsoft.com/dotnet/announcing-ef9-preview-1/ +[ef_bugs]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+is%3Aclosed+label%3Atype-bug +[ef_features]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+is%3Aclosed+label%3Atype-enhancement + +[aspnet_bugs]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+label%3ADone+label%3Abug +[aspnet_features]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+label%3ADone+label%3Aenhancement +[runtime_bugs]: https://github.com/dotnet/runtime/issues?utf8=%E2%9C%93&q=is%3Aissue+milestone%3A9.0+label%3Abug+ +[runtime_features]: https://github.com/dotnet/runtime/issues?q=is%3Aissue+milestone%3A9.0+label%3Aenhancement + +[sdk_bugs]: https://github.com/dotnet/sdk/issues?q=is%3Aissue+is%3Aclosed+milestone%3A9.0.1xx +[linux-packages]: ../../install-linux.md + + +[//]: # ( Runtime 9.0.0-preview.3.24172.9) +[dotnet-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/34bb1d7f-d98c-4f07-b659-d51fcfe82e40/b755a48d351c45c04645be8616dc2e2c/dotnet-runtime-9.0.0-preview.3.24172.9-linux-arm.tar.gz +[dotnet-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/41f0b5d2-d224-49ef-baba-d4f75e495f17/dbd1b290ff250e51fd5daa4f639c8e8e/dotnet-runtime-9.0.0-preview.3.24172.9-linux-arm64.tar.gz +[dotnet-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/97ddafb5-67fc-4af9-8458-8af7fb3f74b8/896be16550d107cc0e6ba54d614d760e/dotnet-runtime-9.0.0-preview.3.24172.9-linux-musl-arm.tar.gz +[dotnet-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/463ffd08-51fe-4d29-b267-119349e3658b/0212b77c93920c7a6a8e688bd8b106df/dotnet-runtime-9.0.0-preview.3.24172.9-linux-musl-arm64.tar.gz +[dotnet-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/124b82e6-f328-4c78-a3b4-f039dbf5bd70/6ac2746137c3ddefdbf5e45400d3e781/dotnet-runtime-9.0.0-preview.3.24172.9-linux-musl-x64.tar.gz +[dotnet-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/28946a74-4cba-4b0d-a080-3c84b4be668e/651cbebe71762ec64bf342805e48e85f/dotnet-runtime-9.0.0-preview.3.24172.9-linux-x64.tar.gz +[dotnet-runtime-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/9e33acd8-adc5-4359-a4a9-e7c538b6ab1f/dde8a2b81d4d6beb63e201781f65f19b/dotnet-runtime-9.0.0-preview.3.24172.9-osx-arm64.pkg +[dotnet-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f2a01607-d9fc-45eb-87d9-190f178f1945/2655017d0a043d97dfe292fc4e986ef0/dotnet-runtime-9.0.0-preview.3.24172.9-osx-arm64.tar.gz +[dotnet-runtime-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/c78a2485-5638-4936-9c47-f7811c1bc8c2/0bc4ad7a2a12f347931f29df84fd4da0/dotnet-runtime-9.0.0-preview.3.24172.9-osx-x64.pkg +[dotnet-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/3b5e0ed2-6c44-4e1d-a790-0a9b6a9cdc59/af989e13e8da69501c6ae95b9d12a1a1/dotnet-runtime-9.0.0-preview.3.24172.9-osx-x64.tar.gz +[dotnet-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/e4d2de3d-abf3-4884-b6ff-aeaa13aa12f2/930bb09dfba48658bf899d14c09c3c86/dotnet-runtime-9.0.0-preview.3.24172.9-win-arm64.exe +[dotnet-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/d1ce7d03-9718-4b84-8c37-34730b224fc5/d58f7cbbf1fde8914d7fac169305c04d/dotnet-runtime-9.0.0-preview.3.24172.9-win-arm64.zip +[dotnet-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/c5fa8322-30ed-4a4e-8685-91bd51d5dee2/729372cb9f417afc136e4d65099103b1/dotnet-runtime-9.0.0-preview.3.24172.9-win-x64.exe +[dotnet-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/6f239997-f134-489b-be36-ecc855324592/ee1ee9d2b19682384cd8d17ac9aaba19/dotnet-runtime-9.0.0-preview.3.24172.9-win-x64.zip +[dotnet-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/474968ad-0fd5-4d18-884f-4122d1d01210/278c3572b1194e5d1c11732d82c5d4c1/dotnet-runtime-9.0.0-preview.3.24172.9-win-x86.exe +[dotnet-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/68781d98-413c-4722-ae18-25ff088d5f34/dca7d9075327516c817df2f5ae2f428b/dotnet-runtime-9.0.0-preview.3.24172.9-win-x86.zip + +[//]: # ( WindowsDesktop 9.0.0-preview.3.24175.3) +[windowsdesktop-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/505f54ed-7158-4708-8111-b3cac859e452/28d77d115e8c3179b0752d7a1fe89dcc/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-arm64.exe +[windowsdesktop-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/b4dbf836-975c-4413-9319-b3e40f633fd1/668ed496071d38cf29863e60a8f5a263/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-arm64.zip +[windowsdesktop-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/678121c1-dd28-4eb9-9389-139d270d0f8c/4bc7282a6ebd29714ff7767871308a71/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-x64.exe +[windowsdesktop-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/27d8d431-11d7-47fb-9510-2e2419f80561/e7d7a221ec27b3274b981782893fd2dc/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-x64.zip +[windowsdesktop-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/2dbf9b41-0a0c-4ca5-8b64-e3d7f9f74048/7d5eb210b81b7357cbdf8bc7b5d54754/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-x86.exe +[windowsdesktop-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/ad07edbf-1cff-4e61-8273-847688e323e3/b7a65770015e2c1b7a8a4927e537f8e1/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-x86.zip + +[//]: # ( ASP 9.0.0-preview.3.24172.13) +[aspnetcore-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/889f7855-0c73-459e-a02f-eafa99a8e500/586101e88960a4424001143dc71b5d90/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-arm.tar.gz +[aspnetcore-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/b7eb8865-5ff1-493d-b2f2-add90226b29d/901cff3eca56382d9bd7ca0f7e0087e7/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-arm64.tar.gz +[aspnetcore-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d568896f-9f13-4dfa-a486-20e54d717c16/8daa58ccb02ea0003b54c10f6c0a3785/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-musl-arm.tar.gz +[aspnetcore-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/ca2b4853-a3a8-4b0b-be76-f3f9dfb7e34d/7574a7679a38e6dadf61a0c5e4bf5ce3/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-musl-arm64.tar.gz +[aspnetcore-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/382eb79b-f802-4b3f-b6c0-7efcefff5aab/ed7c9079ae9a02d84c126c4ebf5097f4/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-musl-x64.tar.gz +[aspnetcore-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/37747dcd-c967-4c91-8928-959b32b706bc/2cb1cf0735fcea5d7eadda52bd5a6cc2/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-x64.tar.gz +[aspnetcore-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/5b68ce5e-aea0-47de-bdfd-5a0eb0e9b1a8/67b0d4863b14455f45b2ff1a916bcd6c/aspnetcore-runtime-9.0.0-preview.3.24172.13-osx-arm64.tar.gz +[aspnetcore-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0b4dddc0-6afc-47c6-a878-4ef939e4f46e/70f229cbcc2f968e7dd3cf53bc7132be/aspnetcore-runtime-9.0.0-preview.3.24172.13-osx-x64.tar.gz +[aspnetcore-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/daccd7a8-ee29-4398-9c0f-53ee52a8348e/dff56958bb98da605699647134b3fa60/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-arm64.zip +[aspnetcore-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/0dd6eca2-4194-4784-b60e-5def59f82a53/7c5bbe6d6c403261ed81c9a0fbe8354f/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-x64.exe +[aspnetcore-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/f3982a9e-ef26-4506-a03e-b7f492df4e5f/677debf2487991af87442a9b07ae2466/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-x64.zip +[aspnetcore-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/5c3f1910-1f0b-49ef-917f-e438af26f069/658cc32133053424f78e9cf4c2ac8475/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-x86.exe +[aspnetcore-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/fb3609f3-44c7-4591-9095-db37485716c3/49c7db163acfaac6cf65884ab93a5ddd/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-x86.zip +[aspnetcore-runtime-composite-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/97290bb1-9a86-47e0-ad8a-8027c080999e/ac2621ad5bced59e859c6a4b1468a87f/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-arm.tar.gz +[aspnetcore-runtime-composite-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f787be98-8e32-4356-94cf-afdbfc89807c/908078a68902b7db3419cdfe66aa28cc/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-arm64.tar.gz +[aspnetcore-runtime-composite-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e5c76b43-b251-4796-9ca7-a060e73372a4/da95c6e26f9c56ea5dd9a0ffeb45d986/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-musl-arm.tar.gz +[aspnetcore-runtime-composite-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/55bdb213-5027-4ef3-b23f-4833298c2312/896cd4a98a5b29100519c5f8bac55ad9/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-musl-arm64.tar.gz +[aspnetcore-runtime-composite-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d86383e0-8ba1-4bbc-b79a-b51906336d40/ae0a563e8efd2a8f73eaf2985909565b/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-musl-x64.tar.gz +[aspnetcore-runtime-composite-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/35d8c84e-43ba-4a6d-8151-ca2b2cefdbeb/46e265a8e72808dc3f82990d13beb955/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-x64.tar.gz +[dotnet-hosting-win.exe]: https://download.visualstudio.microsoft.com/download/pr/f28df469-8a85-4d55-9c4c-957b8c79a7d0/902f993af8ee3aaaf646bc55c4cf668f/dotnet-hosting-9.0.0-preview.3.24172.13-win.exe + +[//]: # ( SDK 9.0.100-preview.3.24204.13) +[dotnet-sdk-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/c5268ba0-1e77-4d0c-aeea-44e91f1ee161/e9ce85b34c7477cba722f397fe1271e2/dotnet-sdk-9.0.100-preview.3.24204.13-linux-arm.tar.gz +[dotnet-sdk-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/793717c7-d418-4972-b9f1-1df9bc7f9a59/f37654f223b95c31b5baa92599b72118/dotnet-sdk-9.0.100-preview.3.24204.13-linux-arm64.tar.gz +[dotnet-sdk-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e7a43093-48b9-4ced-bf6a-3923de4b08e9/08786ae87bbb7eaa7ff4c8216194fa07/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-arm.tar.gz +[dotnet-sdk-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/dd82f0d6-9181-4f73-a0aa-c8fa9df4d5fd/dcf5c9923fd4daff0a836a2b2a84bd96/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-arm64.tar.gz +[dotnet-sdk-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/944ea319-8239-427a-a7aa-948cfa852c8a/ac946e77eac62fc4130f79d182952c89/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-x64.tar.gz +[dotnet-sdk-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/34c1f43d-2d16-4a44-870d-1e333148e4fd/10ee0406a349070f4e120fdef056216f/dotnet-sdk-9.0.100-preview.3.24204.13-linux-x64.tar.gz +[dotnet-sdk-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/788839e8-1e23-4ed2-b176-534d3c4d5899/d80c58a63108090e803c06d0b05a1b73/dotnet-sdk-9.0.100-preview.3.24204.13-osx-arm64.pkg +[dotnet-sdk-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0872ec6f-0e73-4caf-8381-c8004cf508a9/009b50364d70ddb4f892392593659d86/dotnet-sdk-9.0.100-preview.3.24204.13-osx-arm64.tar.gz +[dotnet-sdk-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/9794b13e-14f8-4fd8-baa9-265adc2c7f31/605ec6e450a81e1acfeedc06444450f9/dotnet-sdk-9.0.100-preview.3.24204.13-osx-x64.pkg +[dotnet-sdk-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f11c0612-bf78-41ae-836b-2b3c8765fdfb/feac36e69a3ca718c3c0d12dec3661b5/dotnet-sdk-9.0.100-preview.3.24204.13-osx-x64.tar.gz +[dotnet-sdk-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/b790cf13-8249-4fba-95ea-4e730138457a/c59c22cc546b7d1bac832c1000e9e9e7/dotnet-sdk-9.0.100-preview.3.24204.13-win-arm64.exe +[dotnet-sdk-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/8d18eaf5-8c36-4485-83e8-6c9569e25bf6/167d5db5b84f7080d1ba9098d464efea/dotnet-sdk-9.0.100-preview.3.24204.13-win-arm64.zip +[dotnet-sdk-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/509db05f-a1fa-4420-a8e8-20249073f3fa/a699c2bd1b7bd10346a175117877d455/dotnet-sdk-9.0.100-preview.3.24204.13-win-x64.exe +[dotnet-sdk-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/b50c34cf-e50a-4e64-9bdc-cbd984d44acb/9cba57d4130ef9451e2a9ec218d2c83d/dotnet-sdk-9.0.100-preview.3.24204.13-win-x64.zip +[dotnet-sdk-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/cb5b922d-65ac-4829-b035-2a2df6cd88f7/7623d8b2c846c77dc1dc9c2d19e1214d/dotnet-sdk-9.0.100-preview.3.24204.13-win-x86.exe +[dotnet-sdk-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/5ff67d85-1737-499a-b12d-274b4d7ae73e/5b3dba505826bcff95607e5b0185770f/dotnet-sdk-9.0.100-preview.3.24204.13-win-x86.zip diff --git a/release-notes/9.0/preview/preview3/README.md b/release-notes/9.0/preview/preview3/README.md new file mode 100644 index 00000000..bb87d076 --- /dev/null +++ b/release-notes/9.0/preview/preview3/README.md @@ -0,0 +1,29 @@ +# .NET 9 Preview 3 - Release Notes + +.NET 9 Preview 3 released on April 11th, 2024. Find more information on new features released in .NET 9 Preview 3 by browsing through the release notes below: + +* [Libraries](libraries.md) +* [Runtime](./runtime.md) +* [SDK](./sdk.md) + +### Feature Release Notes + +* [.NET Data and EF Core](./efcoreanddata.md) +* [.NET MAUI](./dotnetmaui.md) +* [ASP.NET Core](./aspnetcore.md) + +## Get Started + +Instructions on getting started with .NET 9 can be found in the [getting started guide](../../get-started.md). Installers and binaries for .NET 9 Preview 3 can be found [here on GitHub](./9.0.0-preview.3.md). + + +## Stay up-to-date + +You can find a detailed overview of all new features in .NET 9: + +* [What's new in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) +* [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) +* [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) +* [What's new in EF Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) + +The latest .NET 9 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/9.0) and [.NET 9 Releases](../../README.md). \ No newline at end of file diff --git a/release-notes/9.0/preview/preview3/aspnetcore.md b/release-notes/9.0/preview/preview3/aspnetcore.md new file mode 100644 index 00000000..fa3f5fba --- /dev/null +++ b/release-notes/9.0/preview/preview3/aspnetcore.md @@ -0,0 +1,63 @@ +# ASP.NET Core in .NET 9 Preview 3 - Release Notes + +Here's a summary of what's new in ASP.NET Core in this preview release: + +- Endpoint metadata on the developer exception page +- Added `InternalServerError` and `InternalServerError` to `TypedResults` +- Handle keyboard composition events in Blazor + +ASP.NET Core updates in .NET 9 Preview 3: + +- [What's new in ASP.NET Core in .NET 9](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) documentation. +- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/9.0#aspnet-core) +- [Roadmap](https://aka.ms/aspnet/roadmap) + +.NET 9 Preview 3: + +- [Discussion](https://aka.ms/dotnet/9/preview3) +- [Release notes](./README.md) + +## Endpoint metadata on the developer exception page + +ASP.NET Core endpoints have associated metadata that can be used for a variety of purposes, like configuring routing, authentication and authorization, response caching, rate limiting, OpenAPI generation, and much more. The Routing tab of the ASP.NET Core [developer exception page](https://learn.microsoft.com/aspnet/core/fundamentals/error-handling#developer-exception-page) now desplays endpoint metadata alongside other routing information to facilitate debugging. + +![image](media/aspnetcore-dev-page-endpoint-metadata.png) + +Thank you [@Kahbazi](https://github.com/Kahbazi) for this contribution! + +## Added `InternalServerError` and `InternalServerError` to `TypedResults` + +`TypedResults` are a helpful vehicle for returning strongly-typed HTTP status code-based responses from a minimal API. The `TypedResults` class now includes factory methods and types for returning "500 Internal Server Error" responses from your endpoints. + +```csharp +var app = WebApplication.Create(); + +app.MapGet("/", () => TypedResults.InternalServerError("Something went wrong!")); + +app.Run(); +``` + +Thank you [@onurmicoogullari](https://github.com/onurmicoogullari) for this contribution! + +## Handle keyboard composition events in Blazor + +The new `KeyboardEventArgs.IsComposing` property indicates if the keyboard event [is part of a composition session](https://w3c.github.io/uievents/#dom-keyboardevent-iscomposing). This is useful for tracking the composition state of keyboard events, which is crucial for handling international character input methods. + +Thank you [@BattlefieldDuck](https://github.com/BattlefieldDuck) for this contribution! + +## Community contributors + +Thank you contributors! ❤️ + +- [omajid](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Aomajid) +- [tcortega](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Atcortega) +- [marcin-burak](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Amarcin-burak) +- [BattlefieldDuck](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3ABattlefieldDuck) +- [JamieMagee](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3AJamieMagee) +- [khellang](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Akhellang) +- [MythoclastBM](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3AMythoclastBM) +- [merijndejonge](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Amerijndejonge) +- [onurmicoogullari](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Aonurmicoogullari) +- [johatuni](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Ajohatuni) +- [andrewjsaid](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3Aandrewjsaid) +- [Kahbazi](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview3+author%3AKahbazi) diff --git a/release-notes/9.0/preview/preview3/dotnetmaui.md b/release-notes/9.0/preview/preview3/dotnetmaui.md new file mode 100644 index 00000000..c7689d05 --- /dev/null +++ b/release-notes/9.0/preview/preview3/dotnetmaui.md @@ -0,0 +1,77 @@ +# .NET MAUI in .NET 9 Preview 3 - Release Notes + +The team is continuing work on core fundamentals of the .NET MAUI SDK to improve overall product quality. This includes expanding test coverage, end to end scenario testing, and bug fixing. + +Here's a summary of what's new in .NET MAUI in this preview release: + +- Multi-target versions of .NET for iOS bindings +- Android Asset Packs + +.NET MAUI updates in .NET 9 Preview 3: + +* [What's new in .NET MAUI in .NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) documentation +* [GitHub Release](https://aka.ms/maui9p3) + +.NET 9 Preview 3: +* [Discussion](https://aka.ms/dotnet/9/preview3) +* [Release notes](./README.md) + +## .NET for Android + +### Asset packs + +.NET Android 9 Preview 3 introduces the ability to place assets into a separate package, known as an *asset pack*. This enables you to upload games and apps that would normally be larger than the basic package size allowed by Google Play. By putting these assets into a separate package you gain the ability to upload a package which is up to 2Gb in size, rather than the basic package size of 200Mb. + +> [!IMPORTANT] +> Asset packs can only contain assets. In the case of .NET Android this means items that have the `AndroidAsset` build action. + +.NET MAUI apps define assets via the `MauiAsset` build action. An asset pack can be specified via the `AssetPack` attribute: + +```xml + +``` + +> [!NOTE] +> The additional metadata will be ignored by other platforms. + +If you have specific items you want to place in an asset pack you can use the `Update` attribute to define the `AssetPack` metadata: + +```xml + +``` + +Asset packs can have different delivery options, which control when your assets will install on the device: + +- Install time packs are installed at the same time as the app. This pack type can be up to 1Gb in size, but you can only have one of them. This delivery type is specified with `InstallTime` metadata. +- Fast follow packs will install at some point shortly after the app has finished installing. The app will be able to start while this type of pack is being installed so you should check it has finished installing before trying to use the assets. This kind of asset pack can be up to 512Mb in size. This delivery type is specified with `FastFollow` metadata. +- On demand packs will never be downloaded to the device unless the app specifically requests it. The total size of all your asset packs can't exceed 2Gb, and you can have up to 50 separate asset packs. This delivery type is specified with `OnDemand` metadata. + +In .NET MAUI apps, the delivery type can be specified with the `DeliveryType` attribute on a `MauiAsset`: + +```xml + +``` + +- [Android Asset Packs](https://github.com/xamarin/xamarin-android/blob/main/Documentation/guides/AndroidAssetPacks.md) +- [GitHub Release](https://github.com/xamarin/xamarin-android/releases/) + +## .NET for iOS + +Projects can now multi-target versions of .NET for iOS bindings. For example, a library project may need to build for 2 distinct versions. + +```xml +net9.0-ios17.0;net9.0-ios17.2 +``` + +This will produce 2 libraries, one using iOS 17.0 bindings, and one using iOS 17.2 bindings. An app project should always target the latest iOS SDK. + +- [Multi-targeting iOS](https://github.com/xamarin/xamarin-macios/blob/main/docs/multi-target-framework.md) documentation +- [GitHub Release](https://github.com/xamarin/xamarin-macios/releases/) +- [Known issues](https://github.com/xamarin/xamarin-macios/wiki/Known-issues-in-.NET9) + +## Community Contributions + +Thanks to contributors [@wcoder](https://github.com/wcoder), [@rpendleton](https://github.com/rpendleton), [@filipnavara](https://github.com/filipnavara), [@snechaev](https://github.com/snechaev), [@symbiogenesis](https://github.com/symbiogenesis), [@bradencohen](https://github.com/bradencohen), [@licon4812](https://github.com/licon4812), [@kubaflo](https://github.com/kubaflo). \ No newline at end of file diff --git a/release-notes/9.0/preview/preview3/efcoreanddata.md b/release-notes/9.0/preview/preview3/efcoreanddata.md new file mode 100644 index 00000000..2f5faeb3 --- /dev/null +++ b/release-notes/9.0/preview/preview3/efcoreanddata.md @@ -0,0 +1,37 @@ +# Entity Framework Core 9 Preview 3 - Release Notes + +Here's a summary of what's new in Entity Framework Core in this preview release: + +- Auto-compiled models +- Sugar for `HierarchyId` path generation + +Entity Framework Core 9: + +- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) documentation. +- [Discussion](https://github.com/dotnet/efcore/issues/33030) + +.NET 9 Preview 3: + +- [Discussion](https://aka.ms/dotnet/9/preview3) +- [Release notes](./README.md) + + +## Auto-compiled models + Auto-compiled models allow the [EF Core compiled model](https://learn.microsoft.com/ef/core/performance/advanced-performance-topics#compiled-models) to be automatically regenerated when the model project is built. This means you no longer need to remember to re-run the `dotnet ef dbcontext optimize` command after your EF model changes. See [Auto-compiled models](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#auto-compiled-models) in the _What's New_ docs for more information. + +## Sugar for `HierarchyId` path generation + First class support for the SQL Server `HierarchyId` type was [added in EF8](https://learn.microsoft.com/ef/core/providers/sql-server/hierarchyid). In EF9, a sugar method has been added to make it easier to create new child nodes in the tree structure. See [Sugar for HierarchyId path generation](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#hierarchyid-path-generation) in the _What's New_ docs for more information. + +## Everything else in Preview 3 +Preview 3 contains: + +* [6 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+is%3Aclosed+label%3Atype-enhancement+) +* [5 bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview3+is%3Aclosed+label%3Atype-bug) + +EF Core 9 preview 3 (and Microsoft.Data.Sqlite) contains work from the EF Team at Microsoft (@roji @AndriySvyryd @maumar @ajcvickers @cincuranet @SamMonoRT @luisquintanilla) as well as contributions from the EF Core community. The community PRs in EF9 Preview 3 are: + +* @lauxjpn: [Cleanup duplicate tests (same test ID)](https://github.com/dotnet/efcore/pull/33185) +* @clement911: [Fixed typo in getting-and-building-the-code.md](https://github.com/dotnet/efcore/pull/33166) +* @Rezakazemi890: [32943-Sugar for HierarchyId path generation](https://github.com/dotnet/efcore/pull/33062) +* @lauxjpn: [Change Where_math(f)_log_new_base queries, so they fail if LOG() parameters are swapped](https://github.com/dotnet/efcore/pull/33342) +* @SteSinger: [33196 command timeout allow zero](https://github.com/dotnet/efcore/pull/33198) \ No newline at end of file diff --git a/release-notes/9.0/preview/preview3/libraries.md b/release-notes/9.0/preview/preview3/libraries.md new file mode 100644 index 00000000..67f84e37 --- /dev/null +++ b/release-notes/9.0/preview/preview3/libraries.md @@ -0,0 +1,233 @@ +# .NET Libraries in .NET 9 Preview 3 - Release Notes + +.NET 9 Preview 3 includes several new libraries features. We focused on the following areas: + +- Enhancements to the Tokenizers Library +- TimeSpan.From overloads +- Added `PersistableAssemblyBuilder` type in System.Reflection.Emit + +Libraries updates in .NET 9 Preview 3: + +- [What's new in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation + +.NET 9 Preview 3: + +- [Discussion](https://aka.ms/dotnet/9/preview3) +- [Release notes](./README.md) +- [SDK release notes](./sdk.md) +- [Runtime release notes](./runtime.md) + +## Enhancements to the Tokenizers Library + +Tokenization is a fundamental component in the preprocessing of natural language text for AI models. Tokenizers are responsible for breaking down a string of text into smaller, more manageable parts, often referred to as tokens. + +When using services like Azure OpenAI, you can use tokenizers to get a better understanding of cost and manage context. When working with self-hosted / local models, tokens are the inputs provided to those models. + +A couple of years ago, we introduced [Microsoft.ML.Tokenizers](https://devblogs.microsoft.com/dotnet/announcing-ml-net-2-0/#tokenizer-support), an open-source, cross-platform tokenization library. At the time, the library was scoped to the [Byte-Pair Encoding (BPE)](https://en.wikipedia.org/wiki/Byte_pair_encoding) tokenization strategy to satisfy the language set of scenarios in ML.NET. + +Over the past few months, we've been making enhancements to the library in the following ways: + +- Refined APIs and existing functionality +- Added Tiktoken support +- Added LlamaTokenizer support +- Worked closely with the DeepDev TokenizerLib and SharpToken communities to cover scenarios covered by those libraries. If you're using DeepDev or SharpToken, we recommend migrating to `Microsoft.ML.Tokenizers`. For more details, see the [migration guide](https://github.com/dotnet/machinelearning/blob/main/docs/code/microsoft-ml-tokenizers-migration-guide.md). + +The following samples demonstrate the utilization of these tokenizers for text tokenization. + +### Using Tiktoken tokenizer + +```C# +using Microsoft.ML.Tokenizers; + +Tokenizer tokenizer = Tokenizer.CreateTiktokenForModel("gpt-4"); +string text = "Hello, World!"; + +// Encode to Ids +IReadOnlyList encodedIds = tokenizer.EncodeToIds(text); +Console.WriteLine($"encodedIds = {{{string.Join(", ", encodedIds)}}}"); // encodedIds = {9906, 11, 4435, 0} + +// Decode Ids to text +string decodedText = tokenizer.Decode(encodedIds); +Console.WriteLine($"decodedText = {decodedText}"); // decodedText = Hello, World! + +// Get token count +int idsCount = tokenizer.CountTokens(text); +Console.WriteLine($"idsCount = {idsCount}"); // idsCount = 4 + +// Full encoding +EncodingResult result = tokenizer.Encode(text); +Console.WriteLine($"result.Tokens = {{'{string.Join("', '", result.Tokens)}'}}"); // result.Tokens = {'Hello', ',', ' World', '!'} +Console.WriteLine($"result.Offsets = {{{string.Join(", ", result.Offsets)}}}"); // result.Offsets = {(0, 5), (5, 1), (6, 6), (12, 1)} +Console.WriteLine($"result.Ids = {{{string.Join(", ", result.Ids)}}}"); // result.Ids = {9906, 11, 4435, 0} + +// Encode up to number of tokens limit +int index1 = tokenizer.IndexOfTokenCount(text, maxTokenCount: 1, out string processedText1, out int tokenCount1); // Encode up to one token +Console.WriteLine($"processedText1 = {processedText1}"); // processedText1 = Hello, World! +Console.WriteLine($"tokenCount1 = {tokenCount1}"); // tokenCount1 = 1 +Console.WriteLine($"index1 = {index1}"); // index1 = 5 + +int index2 = tokenizer.LastIndexOfTokenCount(text, maxTokenCount: 1, out string processedText2, out int tokenCount2); // Encode from end up to one token +Console.WriteLine($"processedText2 = {processedText2}"); // processedText2 = Hello, World! +Console.WriteLine($"tokenCount2 = {tokenCount2}"); // tokenCount2 = 1 +Console.WriteLine($"index2 = {index2}"); // index2 = 12 +``` + +### Using Llama tokenizer + +```C# +using Microsoft.ML.Tokenizers; +using System.Net.Http; + +// Create the Tokenizer +HttpClient httpClient = new HttpClient(); +string modelUrl = @"https://huggingface.co/hf-internal-testing/llama-tokenizer/resolve/main/tokenizer.model"; +using Stream remoteStream = await httpClient.GetStreamAsync(modelUrl); +Tokenizer tokenizer = Tokenizer.CreateLlama(remoteStream); + +string text = "Hello, World!"; + +// Encode to Ids +IReadOnlyList encodedIds = tokenizer.EncodeToIds(text); +Console.WriteLine($"encodedIds = {{{string.Join(", ", encodedIds)}}}"); // encodedIds = {1, 15043, 29892, 2787, 29991} + +// Decode Ids to text +string? decodedText = tokenizer.Decode(encodedIds); +Console.WriteLine($"decodedText = {decodedText}"); // decodedText = Hello, World! + +// Get token count +int idsCount = tokenizer.CountTokens(text); +Console.WriteLine($"idsCount = {idsCount}"); idsCount = 5 + +// Full encoding +EncodingResult result = tokenizer.Encode(text); +Console.WriteLine($"result.Tokens = {{'{string.Join("', '", result.Tokens)}'}}"); // result.Tokens = {'', '▁Hello', ',', '▁World', '!'} +Console.WriteLine($"result.Offsets = {{{string.Join(", ", result.Offsets)}}}"); // result.Offsets = {(0, 0), (0, 6), (6, 1), (7, 6), (13, 1)} +Console.WriteLine($"result.Ids = {{{string.Join(", ", result.Ids)}}}"); // result.Ids = {1, 15043, 29892, 2787, 29991} + +// Encode up to number of tokens limit +int index1 = tokenizer.IndexOfTokenCount(text, maxTokenCount: 2, out string processedText1, out int tokenCount1); // Encode up to two token +Console.WriteLine($"processedText1 = {processedText1}"); // processedText1 = ▁Hello,▁World! +Console.WriteLine($"tokenCount1 = {tokenCount1}"); // tokenCount1 = 2 +Console.WriteLine($"index1 = {index1}"); // index1 = 6 + +int index2 = tokenizer.LastIndexOfTokenCount(text, maxTokenCount: 1, out string processedText2, out int tokenCount2); // Encode from end up to one token +Console.WriteLine($"processedText2 = {processedText2}"); // processedText2 = ▁Hello,▁World! +Console.WriteLine($"tokenCount2 = {tokenCount2}"); // tokenCount2 = 1 +Console.WriteLine($"index2 = {index2}"); // index2 = 13 + +``` + +## Adding TimeSpan.From overloads + +The `TimeSpan` class offers several `From` methods enabling users to create a TimeSpan using a `double`. However, since `double` is a binary-based floating-point format, [inherent imprecision may lead to errors](https://github.com/dotnet/runtime/issues/93890). For instance, `TimeSpan.FromSeconds(101.832)` may not precisely represent `101 seconds, 832 milliseconds`, but rather approximately `101 seconds, 831.9999999999936335370875895023345947265625 milliseconds`. This discrepancy has often caused user confusion and API surface bugs over time, requiring users to address and rationalize them. Moreover, it's not the most efficient way to represent such data and can pose challenges for users expecting specific behavior. To address this, new overloads have been introduced allowing users to pass integers, ensuring they achieve the desired and intended behavior. + +Many thanks to [Tommy Sørbråten](https://github.com/tommysor) for contributing the implementation of the added overloads. + +### Sample + +```C# +TimeSpan timeSpan1 = TimeSpan.FromSeconds(value: 101.832); +Console.WriteLine($"timeSpan1 = {timeSpan1}"); // timeSpan1 = 00:01:41.8319999 + +TimeSpan timeSpan2 = TimeSpan.FromSeconds(seconds: 101, milliseconds: 832); +Console.WriteLine($"timeSpan2 = {timeSpan2}"); // timeSpan2 = 00:01:41.8320000 +``` + +### Added Overloads + +```C# +public partial struct TimeSpan +{ + public static TimeSpan FromDays(int days); + public static TimeSpan FromDays(int days, int hours = 0, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0); + public static TimeSpan FromHours(int hours); + public static TimeSpan FromHours(int hours, long minutes = 0, long seconds = 0, long milliseconds = 0, long microseconds = 0); + public static TimeSpan FromMinutes(long minutes); + public static TimeSpan FromMinutes(long minutes, long seconds = 0, long milliseconds = 0, long microseconds = 0); + public static TimeSpan FromSeconds(long seconds); + public static TimeSpan FromSeconds(long seconds, long milliseconds = 0, long microseconds = 0); + public static TimeSpan FromMilliseconds(long milliseconds, long microseconds = 0); + public static TimeSpan FromMicroseconds(long microseconds); +} +``` + +## Added `PersistableAssemblyBuilder` type in System.Reflection.Emit + +We added a [persisted AssemblyBuilder](../preview1/libraries.md#systemreflectionemit-support-equivalent-of-assemblybuildersave) implementation and related APIs in .NET 9 preview 1. Further, we needed to add more APIs for setting `EntryPoint` and other properties of the final binary. There was no efficient way to add an API that allows setting all available options for an assembly. We decided to let the users handle their assembly building process by themselves using the parameters of [PEHeaderBuilder](https://learn.microsoft.com/dotnet/api/system.reflection.portableexecutable.peheaderbuilder.-ctor) and [ManagedPEBuilder](https://learn.microsoft.com/dotnet/api/system.reflection.portableexecutable.managedpebuilder.-ctor) constructors. These constructor options covers all options that existed in .NET framework, (but not exactly same way), plus provide many other options that are available in .NET Core. + +In order to achieve this, we [provide all metadata](https://github.com/dotnet/runtime/issues/97015) information produced with Reflection.Emit APIs with a new `MetadataBuilder GenerateMetadata(out BlobBuilder ilStream, out BlobBuilder mappedFieldData)` method so that user could embed them into the corresponding section of `PEBuidler`. But because the [MetadataBuilder](https://learn.microsoft.com/dotnet/api/system.reflection.metadata.ecma335.metadatabuilder) and [BlobBuilder](https://learn.microsoft.com/dotnet/api/system.reflection.metadata.blobbuilder) types are not accessible from within CoreLib we made the `PersistedAssemblyBuilder` type public and moved the new APIs from the base `AssemblyBuilder` type into this new type. + +### API updates + +```diff +public abstract partial class AssemblyBuilder +{ + // These APIs moved from AssemblyBuilder into PersistedAssemblyBuilder type +- public static AssemblyBuilder DefinePersistedAssembly(AssemblyName name, Assembly coreAssembly, IEnumerable? assemblyAttributes = null); + +- public void Save(Stream stream); +- public void Save(string assemblyFileName); +- protected abstract void SaveCore(Stream stream); +} + ++public sealed class PersistedAssemblyBuilder : AssemblyBuilder +{ ++ public PersistedAssemblyBuilder(AssemblyName name, Assembly coreAssembly, IEnumerable? assemblyAttributes = null); + ++ public void Save(Stream stream); ++ public void Save(string assemblyFileName); + // New method that can be used for generating custom assembly with entry point and other options ++ public MetadataBuilder GenerateMetadata(out BlobBuilder ilStream, out BlobBuilder mappedFieldData); +} +``` + +### Sample usage + +Because of the above changes to create a persisted AssemblyBuilder instance use `PersistedAssemblyBuilder(AssemblyName name, Assembly coreAssembly, IEnumerable? assemblyAttributes = null)` constuctor instead of `AssemblyBuilder.DefinePersistedAssembly(AssemblyName name, Assembly coreAssembly, IEnumerable? assemblyAttributes = null)`. Then after emitting all members you can call the `Save` method to save the assembly with default settings. + +```csharp +PersistedAssemblyBuilder ab = new PersistedAssemblyBuilder(new AssemblyName("MyAssembly"), typeof(object).Assembly); +TypeBuilder tb = ab.DefineDynamicModule("MyModule").DefineType("MyType", TypeAttributes.Public | TypeAttributes.Class); +// ... +MethodBuilder entryPoint = tb.DefineMethod("Main", MethodAttributes.Public | MethodAttributes.Static); +ILGenerator il2 = entryPoint.GetILGenerator(); +// ... +tb.CreateType(); + +ab.Save("MyAssembly.dll") +``` + +In case you want to set entry point and/or other options you can call `public MetadataBuilder GenerateMetadata(out BlobBuilder ilStream, out BlobBuilder mappedFieldData)` method and use the produced metadata for saving assembly as needed. Below example shows how to set entry point for an assembly and save it as executable: + +```csharp +PersistedAssemblyBuilder ab = new PersistedAssemblyBuilder(new AssemblyName("MyAssembly"), typeof(object).Assembly); +TypeBuilder tb = ab.DefineDynamicModule("MyModule").DefineType("MyType", TypeAttributes.Public | TypeAttributes.Class); +// ... +MethodBuilder entryPoint = tb.DefineMethod("Main", MethodAttributes.Public | MethodAttributes.Static); +ILGenerator il2 = entryPoint.GetILGenerator(); +// ... +tb.CreateType(); + +MetadataBuilder metadataBuilder = ab.GenerateMetadata(out BlobBuilder ilStream, out BlobBuilder fieldData); +PEHeaderBuilder peHeaderBuilder = new PEHeaderBuilder( + imageCharacteristics: Characteristics.ExecutableImage); + +ManagedPEBuilder peBuilder = new ManagedPEBuilder( + header: peHeaderBuilder, + metadataRootBuilder: new MetadataRootBuilder(metadataBuilder), + ilStream: ilStream, + mappedFieldData: fieldData, + entryPoint: MetadataTokens.MethodDefinitionHandle(entryPoint.MetadataToken)); + +BlobBuilder peBlob = new BlobBuilder(); +peBuilder.Serialize(peBlob); +using var fileStream = new FileStream("MyAssembly.exe", FileMode.Create, FileAccess.Write); +peBlob.WriteContentTo(fileStream); +``` + +## Changes to [ActivatorUtilities.CreateInstance()](https://learn.microsoft.com/dotnet/api/microsoft.extensions.dependencyinjection.activatorutilities.createinstance) when using [[ActivatorUtilitiesConstructor]](https://learn.microsoft.com/dotnet/api/microsoft.extensions.dependencyinjection.activatorutilitiesconstructorattribute) +The constructor resolution for `ActivatorUtilities.CreateInstance()` with the attribute `[ActivatorUtilitiesConstructor]` [has changed to always use the attribute](https://github.com/dotnet/runtime/pull/99175). Previously, a constructor without the attribute but with more parameters was selected but only if it was declared after the constructor with the attribute. + +The change was made to allow full, unambiguous control over which constructor is used. + +Mostly due to these changes, [performance has also increased](https://github.com/dotnet/runtime/pull/99383); the more constructors there are, the greater the performance impact. For a simple case of 3 constructors, `CreateInstance()` is now twice is fast. If performance is a concern here, and only one constructor should ever be called, this may be a reason to add `[ActivatorUtilitiesConstructor]` to your classes. diff --git a/release-notes/9.0/preview/preview3/media/aspnetcore-dev-page-endpoint-metadata.png b/release-notes/9.0/preview/preview3/media/aspnetcore-dev-page-endpoint-metadata.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca2f9707203a44c518ef837e755339cd8ed02db GIT binary patch literal 72362 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 literal 0 HcmV?d00001 diff --git a/release-notes/9.0/preview/preview3/media/terminallogger-multiline-after.png b/release-notes/9.0/preview/preview3/media/terminallogger-multiline-after.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb18a87231eae31d36985ae0e75c3a65cdc4bc5 GIT binary patch literal 44435 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 E0142xZ~y=R literal 0 HcmV?d00001 diff --git a/release-notes/9.0/preview/preview3/media/terminallogger-multiline-before.png b/release-notes/9.0/preview/preview3/media/terminallogger-multiline-before.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ba976f512286e87b4f843be6ff26dc4d201570 GIT binary patch literal 55362 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 => Callee(); + +static bool Callee() => typeof(T) == typeof(int); +``` + +When `T` is a reference type like `string`, the runtime creates special instantiations of `Test` and `Callee` that are shared by all ref-type `T`s (this is what we mean by "shared generics"). To make this work, the runtime builds dictionaries mapping generic types to internal types. These dictionaries are specialized per generic type (or per generic method), and are accessed at runtime to obtain information about `T` and types dependent on `T`. Historically, code compiled just-in-time was only capable of performing these runtime lookups against the root method's dictionary. This meant RyuJIT could not inline `Callee` into `Test`, as there was no way for the inlined code from `Callee` to access the proper dictionary, despite the fact that the two methods were instantiated over the same type. + +Preview 3 lifts this restriction by freely enabling runtime type lookups in callees, meaning RyuJIT can now inline methods like `Callee` into `Test`. + +Suppose we call `Test` in another method. In pseudocode, the inlining looks like this: + +```csharp +static bool Test() => typeof(string) == typeof(int); +``` + +That type check can be computed during compilation, so the final code looks like this: + +```csharp +static bool Test() => false; +``` + +Note that the decision to inline `Callee` might enable the call to `Test` to be inlined as well, and so on -- improvements to RyuJIT's inliner can have compound effects on other inlining decisions, resulting in significant performance wins. Out of [hundreds](https://github.com/dotnet/runtime/pull/99265#issuecomment-2007077353) of benchmark improvements, [at least eighty](https://gist.github.com/EgorBo/b6424f7118ff176682f63875d89fb52e) improved by ten percent or more! For more details, check out [#99265](https://github.com/dotnet/runtime/pull/99265) in [dotnet/runtime](https://github.com/dotnet/runtime). diff --git a/release-notes/9.0/preview/preview3/sdk.md b/release-notes/9.0/preview/preview3/sdk.md new file mode 100644 index 00000000..b09364a2 --- /dev/null +++ b/release-notes/9.0/preview/preview3/sdk.md @@ -0,0 +1,91 @@ +# .NET SDK in .NET 9 Preview 3 - Release Notes + +.NET 9 Preview 3 includes several new SDK features. We focused on the following area: + +- Terminal Logger + +SDK updates in .NET 9 Preview 3: + +- [What's new in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation + +.NET 9 Preview 3: + +- [Discussion](https://aka.ms/dotnet/9/preview3) +- [Release notes](./README.md) +- [Runtime release notes](./runtime.md) +- [Libraries release notes](./libraries.md) + + +## Terminal Logger Usability + +In this preview, the Terminal Logger feature learned to summarize the total count of failures and warnings at the end of a build, and it also learned how to show errors that contain newlines. These changes are a direct result of feedback from users in the early preview of .NET 9, so please continue to use Terminal Logger and report your feedback [on the MSBuild repository](https://github.com/dotnet/msbuild/issues). + +To show the features in action, here's a quick project file that you can use as a template: + +```xml + + + + net8.0 + + + + + + + + + + +``` + +Save the project file locally and run `dotnet build -tl` on older SDKs and the new .NET 9 preview 3 release to see the differences. On the .NET 8 SDK, the output is: + +```terminal +$ dotnet build -tl +MSBuild version 17.8.5+b5265ef37 for .NET +Restore complete (0.5s) + multiline-error-example succeeded with warnings (0.2s) → bin\Debug\net8.0\multiline-error-example.dll + E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(8,5): warning ECLIPSE001: Turn around, bright eyes + E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(9,5): warning ECLIPSE002: Every now and then I fall apart + E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(11,5): warning ECLIPSE003: Black Hole Sun, won't you come +E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(11,5): warning ECLIPSE003: And wash away the rain +E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(11,5): warning ECLIPSE003: Black Hole Sun, won't you come +E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(11,5): warning ECLIPSE003: won't you come + +Build succeeded with warnings in 0.9s +``` + +Rendered on my terminal, this looks like + +![An MSBuild Build log with 3 warnings - two are single-line, but the third is multi-line. Each line of the multi-line error is a separate line in the log, and each of those lines are prefixed with the full path to the project that caused the warning, the line and column of the warning, and the warning code. Finally, the build summary only shows that there were some warnings, not how many there were.](media/terminallogger-multiline-before.png) + +Note how each line of each warning (and error, but we didn't show any here) is a separate line with a full error message prefix. This is very hard to read. In addition, the final build summary just says that there _were_ warnings, not how many there were. This can make it hard to see if a particular build is better or worse than previous builds. Here's the same operation on the .NET 9 preview 3 SDK: + +```terminal +> dotnet build -tl +Restore complete (0.4s) +You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy + multiline-error-example succeeded with 3 warning(s) (0.2s) → bin\Debug\net8.0\multiline-error-example.dll + E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(8,5): warning ECLIPSE001: Turn around, bright eyes + E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(9,5): warning ECLIPSE002: Every now and then I fall apart + E:\Code\Scratch\multiline-error-example\multiline-error-example.csproj(11,5): warning ECLIPSE003: + Black Hole Sun, won't you come + And wash away the rain + Black Hole Sun, won't you come + won't you come + +Build succeeded with 3 warning(s) in 0.8s +``` + +Rendered on my terminal, this looks like +![An MSBuild Build log with 3 warnings - two are single-line, but the third is multi-line. Each line of the multi-line error is a separate line in the log with proper spaces handled. There is no long prefix on each of the warning message lines. The final build summary clearly states that there were 3 warnings.](media/terminallogger-multiline-after.png) + +In the image, the larger blue box is highlighting that the message lines of the third warning no longer have the repeated long project and location information that cluttered the display in the original version. In addition, the smaller blue box highlights that the build summary clearly shows how many warnings (and errors, if we had any) were generated during the build. + +Combined, these features improve the information that is available at-a-glance, and the multi-line support especially is a foundational improvement for future investment in multi-line diagnostics and messages of all kinds. Give the new version of Terminal Logger a try, and remember to let us know your feedback [on the MSBuild repository](https://github.com/dotnet/msbuild/issues). + + diff --git a/release-notes/9.0/releases.json b/release-notes/9.0/releases.json index 8d612794..a4203894 100644 --- a/release-notes/9.0/releases.json +++ b/release-notes/9.0/releases.json @@ -1,13 +1,519 @@ { "channel-version": "9.0", - "latest-release": "9.0.0-preview.2", - "latest-release-date": "2024-03-12", - "latest-runtime": "9.0.0-preview.2.24128.5", - "latest-sdk": "9.0.100-preview.2.24157.14", + "latest-release": "9.0.0-preview.3", + "latest-release-date": "2024-04-11", + "latest-runtime": "9.0.0-preview.3.24172.9", + "latest-sdk": "9.0.100-preview.3.24204.13", "support-phase": "preview", "release-type": "sts", "lifecycle-policy": "https://aka.ms/dotnetcoresupport", "releases": [ + { + "release-date": "2024-04-11", + "release-version": "9.0.0-preview.3", + "security": false, + "cve-list": [], + "release-notes": "https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/preview9/9.0.0-preview.3.md", + "runtime": { + "version": "9.0.0-preview.3.24172.9", + "version-display": "9.0.0-preview.3", + "vs-support": "Visual Studio 2022 (v17.10 Preview 1)", + "vs-mac-version": "", + "files": [ + { + "name": "dotnet-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/34bb1d7f-d98c-4f07-b659-d51fcfe82e40/b755a48d351c45c04645be8616dc2e2c/dotnet-runtime-9.0.0-preview.3.24172.9-linux-arm.tar.gz", + "hash": "ccbda0ce6e8220ec83bf9fd7eba030a96d2e9567bd4bf162e4b0ccc3ce8c08b855c6ec20b15f401e6b4341464d12dae219f3716102a001672fc441a4358e3445" + }, + { + "name": "dotnet-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/41f0b5d2-d224-49ef-baba-d4f75e495f17/dbd1b290ff250e51fd5daa4f639c8e8e/dotnet-runtime-9.0.0-preview.3.24172.9-linux-arm64.tar.gz", + "hash": "3f8bd80a03a63019d0c2038119a0bccfa5b1b700fc7c22565bff2e0af425fc0ca475c13b03a666aca2f954db9e53d7505db9cf984482d4a6be1d8019986324ab" + }, + { + "name": "dotnet-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/97ddafb5-67fc-4af9-8458-8af7fb3f74b8/896be16550d107cc0e6ba54d614d760e/dotnet-runtime-9.0.0-preview.3.24172.9-linux-musl-arm.tar.gz", + "hash": "c5638c562451f2c2d591e51e014edb15111ab49b8a71016bca3d4095a74d9064184a3f5bdeb236fda59ad98dd730221038628c5ac6105d9a4eae6664a98abf16" + }, + { + "name": "dotnet-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/463ffd08-51fe-4d29-b267-119349e3658b/0212b77c93920c7a6a8e688bd8b106df/dotnet-runtime-9.0.0-preview.3.24172.9-linux-musl-arm64.tar.gz", + "hash": "c8777c446cad3a37012e47625031552d517e27d32198ccb746b1544135abcf60bfc3ff7e801cfcfb72d2d8563604345e2da011fa0aa8939bacb13d8b619bea5d" + }, + { + "name": "dotnet-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/124b82e6-f328-4c78-a3b4-f039dbf5bd70/6ac2746137c3ddefdbf5e45400d3e781/dotnet-runtime-9.0.0-preview.3.24172.9-linux-musl-x64.tar.gz", + "hash": "adace7cff420fcf0e437bdfc90b6a39b703c53301b95d2fbdaab15fb4a7acc6d8a40ce6107a8c0f30230c6c8145c28e8c0f33c2ab604c6d1946d80dd8d350c48" + }, + { + "name": "dotnet-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/28946a74-4cba-4b0d-a080-3c84b4be668e/651cbebe71762ec64bf342805e48e85f/dotnet-runtime-9.0.0-preview.3.24172.9-linux-x64.tar.gz", + "hash": "244963004ced27054eb1c5473adfa7a0e249cca4def0305e81136e39d00319e5be2c77f687034df7e1f026bf92321332d8904ce93851e215e9c213da105d37db" + }, + { + "name": "dotnet-runtime-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9e33acd8-adc5-4359-a4a9-e7c538b6ab1f/dde8a2b81d4d6beb63e201781f65f19b/dotnet-runtime-9.0.0-preview.3.24172.9-osx-arm64.pkg", + "hash": "15576674976f8927fc0fb277382d536692c4426a6483189ff192a082128b9c43d03eff1a6bd7de859e991bdb8fe75421ab3c45163552ef9e7c45441a483793de" + }, + { + "name": "dotnet-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f2a01607-d9fc-45eb-87d9-190f178f1945/2655017d0a043d97dfe292fc4e986ef0/dotnet-runtime-9.0.0-preview.3.24172.9-osx-arm64.tar.gz", + "hash": "20ac79faf78b8e95e73778ab8f8c238aa282d2a6ab844406968f68e946a4a8258e8f01458794a4c77ebf7c0a1e9dcc76169ecc84dabcd1fe983209f968367887" + }, + { + "name": "dotnet-runtime-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/c78a2485-5638-4936-9c47-f7811c1bc8c2/0bc4ad7a2a12f347931f29df84fd4da0/dotnet-runtime-9.0.0-preview.3.24172.9-osx-x64.pkg", + "hash": "dce9a57df606ed6b3e142aab69ac482c160ebd4be776552881ff80843ae777e13f25f160289bc1ddfa19e04446f85552de59e9d700bbc0354aa070bd99eda4e6" + }, + { + "name": "dotnet-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/3b5e0ed2-6c44-4e1d-a790-0a9b6a9cdc59/af989e13e8da69501c6ae95b9d12a1a1/dotnet-runtime-9.0.0-preview.3.24172.9-osx-x64.tar.gz", + "hash": "873078a50675fa576df27867231b37c7a09511893bb2f7c91f4cc1069e88ac4b6fa7c4eb439b6b39ba2522b7a3e2d2cc9fbec4e700e49402672e6358fdeaaf07" + }, + { + "name": "dotnet-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/e4d2de3d-abf3-4884-b6ff-aeaa13aa12f2/930bb09dfba48658bf899d14c09c3c86/dotnet-runtime-9.0.0-preview.3.24172.9-win-arm64.exe", + "hash": "77b0ea1bc5b722858e269ee0c61509729a3419b7da3ad6210d85e10e18d07ed2d46ef2311a1eadd077b1997f28d2cf483e3e6d34a6f56c8c4a871cdd27f77706" + }, + { + "name": "dotnet-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/d1ce7d03-9718-4b84-8c37-34730b224fc5/d58f7cbbf1fde8914d7fac169305c04d/dotnet-runtime-9.0.0-preview.3.24172.9-win-arm64.zip", + "hash": "7c51a32dc7dec38e9f923ebc43ad9d587d3bb209589124bfbd8102a2a6d155bac6cd1758bb35f6290a3e95a0abee98a83c383900fe6765f57871652d28f5691e" + }, + { + "name": "dotnet-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/c5fa8322-30ed-4a4e-8685-91bd51d5dee2/729372cb9f417afc136e4d65099103b1/dotnet-runtime-9.0.0-preview.3.24172.9-win-x64.exe", + "hash": "9cecf9017cec09d32bed0d26e43ae00c2122380a25ef1426dc0ad3fa16f4e43e7ba071910ef56940d32540bd5053faa0a219aaa83be3b62c273f6216c3c7ab84" + }, + { + "name": "dotnet-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/6f239997-f134-489b-be36-ecc855324592/ee1ee9d2b19682384cd8d17ac9aaba19/dotnet-runtime-9.0.0-preview.3.24172.9-win-x64.zip", + "hash": "4b46ec7849a78d73ca71cb55f259bec2d320e26029b64b398bf16ea2ef14bdff2096a35fbabe929f21b5b97ae865688c5722b2b761babc09a0d53b8921434d91" + }, + { + "name": "dotnet-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/474968ad-0fd5-4d18-884f-4122d1d01210/278c3572b1194e5d1c11732d82c5d4c1/dotnet-runtime-9.0.0-preview.3.24172.9-win-x86.exe", + "hash": "b73bb3c6ac46fbbfb3e536f1579abaa0cf86e97001e049226dd60e3dc1be2ead8f9d825ac8775a8fa7a57786316e0c13a63931b2c2b66363da9e033e4c3b9047" + }, + { + "name": "dotnet-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/68781d98-413c-4722-ae18-25ff088d5f34/dca7d9075327516c817df2f5ae2f428b/dotnet-runtime-9.0.0-preview.3.24172.9-win-x86.zip", + "hash": "5c70d0844fbd6b0178a8820f4a0f9c9204e35216ae3de5a121e29fbfbd53f23dd82978f6bdd551907578869984242c61a7dbea57bca3b6bea59c7af7ee7b7546" + } + ] + }, + "sdk": { + "version": "9.0.100-preview.3.24204.13", + "version-display": "9.0.100-preview.3", + "runtime-version": "9.0.0-preview.3.24172.9", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "Visual Studio 2022 (v17.10 Preview 1)", + "vs-mac-support": "", + "csharp-version": "12.0", + "fsharp-version": "8.0", + "vb-version": "16.9", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/c5268ba0-1e77-4d0c-aeea-44e91f1ee161/e9ce85b34c7477cba722f397fe1271e2/dotnet-sdk-9.0.100-preview.3.24204.13-linux-arm.tar.gz", + "hash": "76e53d9b288ed800b9087d2a3bde25481642d84f133955f57ec69a35f2ef65237c937fc1f0f60b3c2190cd6e34f3bccc71b85fb2c37a08976e82e2d761ec40d0" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/793717c7-d418-4972-b9f1-1df9bc7f9a59/f37654f223b95c31b5baa92599b72118/dotnet-sdk-9.0.100-preview.3.24204.13-linux-arm64.tar.gz", + "hash": "83c6fc2cdb8aba6d72661f2fc360147482dda7c22b69b3f0df9912efe7e0499f3c7b1d1a8577b3667ec3faf6cca99bfa887c663904847356c93e6f1e6f9917b9" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/e7a43093-48b9-4ced-bf6a-3923de4b08e9/08786ae87bbb7eaa7ff4c8216194fa07/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-arm.tar.gz", + "hash": "772b2af66459b4ad7cd8005a02799f7446fe7fdac97f488d7575b1d1ed2079af539420b01609da6caf0addc86bbca72e53949ba4979c31853a9d724f80756492" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/dd82f0d6-9181-4f73-a0aa-c8fa9df4d5fd/dcf5c9923fd4daff0a836a2b2a84bd96/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-arm64.tar.gz", + "hash": "8f19023e96760e397261b1d0c765a789c01a7377b782ab8254b5f85c01048c305f8e627d796c8b6040a23ed12eefdd544200167bcb32871efe0c627359f3e7d4" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/944ea319-8239-427a-a7aa-948cfa852c8a/ac946e77eac62fc4130f79d182952c89/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-x64.tar.gz", + "hash": "e72027ffbeb7d5c9b8796620226ab410510ff57ad93f5e24f7a2ee281fd733daabff74a15f3dcbe04413fbd4bff0713fd298cac732eb0f71ee6c6dadf334e972" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/34c1f43d-2d16-4a44-870d-1e333148e4fd/10ee0406a349070f4e120fdef056216f/dotnet-sdk-9.0.100-preview.3.24204.13-linux-x64.tar.gz", + "hash": "7f487d92ee3b28061ef28e013295ebdf6703721b5e2e55ae2d7b18f1ff4fa4e3e01b6a8b508723ffb22dbc8437f0693d7c07f4dd8ef113d5da8a51b3645b3422" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/788839e8-1e23-4ed2-b176-534d3c4d5899/d80c58a63108090e803c06d0b05a1b73/dotnet-sdk-9.0.100-preview.3.24204.13-osx-arm64.pkg", + "hash": "43d167bea8ab900ff67674bd378ba09228f105be8d8b0c4866e867611072169a7ee1aca67cd04f06294d01fba2ae2c0427553e5552de10c41fc1096df4db9e54" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0872ec6f-0e73-4caf-8381-c8004cf508a9/009b50364d70ddb4f892392593659d86/dotnet-sdk-9.0.100-preview.3.24204.13-osx-arm64.tar.gz", + "hash": "69452e7266bbccebc7acb9cec7b328f8fa1bca4b0720a27450b67c19d41ac9e8b5ca23f3da762c37769dadd0c65fcb1068b32c98b507d19cb9c5619b301f6860" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9794b13e-14f8-4fd8-baa9-265adc2c7f31/605ec6e450a81e1acfeedc06444450f9/dotnet-sdk-9.0.100-preview.3.24204.13-osx-x64.pkg", + "hash": "7ae365e863a76a52b2c646bf34ca444b6ec08118edb4f52391d013c22f2fe9df1ceab75156b3c48d16d564baa02c71093b9b9e0edac01a6e2a0b311182bbe561" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f11c0612-bf78-41ae-836b-2b3c8765fdfb/feac36e69a3ca718c3c0d12dec3661b5/dotnet-sdk-9.0.100-preview.3.24204.13-osx-x64.tar.gz", + "hash": "1c0d5a8751f36b4e2f0d2971600a6f870155dd12e0a0669951d99b1d50b8021c51a5c9df447ecd8bb53c3ceaa6f4467edc0eb357bcc8d26e272b5ea121f170f7" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/b790cf13-8249-4fba-95ea-4e730138457a/c59c22cc546b7d1bac832c1000e9e9e7/dotnet-sdk-9.0.100-preview.3.24204.13-win-arm64.exe", + "hash": "ad7114b1a961db4797a733cd2823aa6a5735103290b282f1b0a3bf0917d360d8fac931d629d94ecc3f8ffac50cb6bcf4c0afdcb48b1dbc621fc59348abccf524" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/8d18eaf5-8c36-4485-83e8-6c9569e25bf6/167d5db5b84f7080d1ba9098d464efea/dotnet-sdk-9.0.100-preview.3.24204.13-win-arm64.zip", + "hash": "1fb88185859896b2fc6e0e6f867b6a27cdea13aa414c8c6b606ce72b48148fd938209fb49c073316689a5bcc739443a647fa60b98b6ffedb0fd508886096b7e9" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/509db05f-a1fa-4420-a8e8-20249073f3fa/a699c2bd1b7bd10346a175117877d455/dotnet-sdk-9.0.100-preview.3.24204.13-win-x64.exe", + "hash": "d8f49442160a7a92b617a59eaf8fdc4ca776739429f79a7dfd5da4486629a8b6df1999cf2adb3d06ae715a31a8fc3aa355329a87d2780724874afa5028688898" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/b50c34cf-e50a-4e64-9bdc-cbd984d44acb/9cba57d4130ef9451e2a9ec218d2c83d/dotnet-sdk-9.0.100-preview.3.24204.13-win-x64.zip", + "hash": "55114bd014d2613aa35e91148bad263cfe0fd8499995c9641bdfff1b7c2f10c70add06c1d9c016f60fe7c4d144725154187a7c0ad4b1296f1ec32e876ae3ceed" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/cb5b922d-65ac-4829-b035-2a2df6cd88f7/7623d8b2c846c77dc1dc9c2d19e1214d/dotnet-sdk-9.0.100-preview.3.24204.13-win-x86.exe", + "hash": "24bc29abc7c11988648584adbd17d9d3f8694b7b2ed622f860709a680f7eee97b12de34470c78a9718383cc33ee8934d19e3193475a6a7f304b65cdb02468f33" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/5ff67d85-1737-499a-b12d-274b4d7ae73e/5b3dba505826bcff95607e5b0185770f/dotnet-sdk-9.0.100-preview.3.24204.13-win-x86.zip", + "hash": "e240c2ebfa0089b95077f297748988b9c1cfd662fc39616b225c479f810dbe7ffafc91c5c3faf7cdf633be2660e1aee3d201209122cc30a9a66be21273197741" + } + ] + }, + "sdks": [ + { + "version": "9.0.100-preview.3.24204.13", + "version-display": "9.0.100-preview.3", + "runtime-version": "9.0.0-preview.3.24172.9", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "", + "vs-mac-support": "", + "csharp-version": "12.0", + "fsharp-version": "8.0", + "vb-version": "16.9", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/c5268ba0-1e77-4d0c-aeea-44e91f1ee161/e9ce85b34c7477cba722f397fe1271e2/dotnet-sdk-9.0.100-preview.3.24204.13-linux-arm.tar.gz", + "hash": "76e53d9b288ed800b9087d2a3bde25481642d84f133955f57ec69a35f2ef65237c937fc1f0f60b3c2190cd6e34f3bccc71b85fb2c37a08976e82e2d761ec40d0" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/793717c7-d418-4972-b9f1-1df9bc7f9a59/f37654f223b95c31b5baa92599b72118/dotnet-sdk-9.0.100-preview.3.24204.13-linux-arm64.tar.gz", + "hash": "83c6fc2cdb8aba6d72661f2fc360147482dda7c22b69b3f0df9912efe7e0499f3c7b1d1a8577b3667ec3faf6cca99bfa887c663904847356c93e6f1e6f9917b9" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/e7a43093-48b9-4ced-bf6a-3923de4b08e9/08786ae87bbb7eaa7ff4c8216194fa07/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-arm.tar.gz", + "hash": "772b2af66459b4ad7cd8005a02799f7446fe7fdac97f488d7575b1d1ed2079af539420b01609da6caf0addc86bbca72e53949ba4979c31853a9d724f80756492" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/dd82f0d6-9181-4f73-a0aa-c8fa9df4d5fd/dcf5c9923fd4daff0a836a2b2a84bd96/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-arm64.tar.gz", + "hash": "8f19023e96760e397261b1d0c765a789c01a7377b782ab8254b5f85c01048c305f8e627d796c8b6040a23ed12eefdd544200167bcb32871efe0c627359f3e7d4" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/944ea319-8239-427a-a7aa-948cfa852c8a/ac946e77eac62fc4130f79d182952c89/dotnet-sdk-9.0.100-preview.3.24204.13-linux-musl-x64.tar.gz", + "hash": "e72027ffbeb7d5c9b8796620226ab410510ff57ad93f5e24f7a2ee281fd733daabff74a15f3dcbe04413fbd4bff0713fd298cac732eb0f71ee6c6dadf334e972" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/34c1f43d-2d16-4a44-870d-1e333148e4fd/10ee0406a349070f4e120fdef056216f/dotnet-sdk-9.0.100-preview.3.24204.13-linux-x64.tar.gz", + "hash": "7f487d92ee3b28061ef28e013295ebdf6703721b5e2e55ae2d7b18f1ff4fa4e3e01b6a8b508723ffb22dbc8437f0693d7c07f4dd8ef113d5da8a51b3645b3422" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/788839e8-1e23-4ed2-b176-534d3c4d5899/d80c58a63108090e803c06d0b05a1b73/dotnet-sdk-9.0.100-preview.3.24204.13-osx-arm64.pkg", + "hash": "43d167bea8ab900ff67674bd378ba09228f105be8d8b0c4866e867611072169a7ee1aca67cd04f06294d01fba2ae2c0427553e5552de10c41fc1096df4db9e54" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0872ec6f-0e73-4caf-8381-c8004cf508a9/009b50364d70ddb4f892392593659d86/dotnet-sdk-9.0.100-preview.3.24204.13-osx-arm64.tar.gz", + "hash": "69452e7266bbccebc7acb9cec7b328f8fa1bca4b0720a27450b67c19d41ac9e8b5ca23f3da762c37769dadd0c65fcb1068b32c98b507d19cb9c5619b301f6860" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9794b13e-14f8-4fd8-baa9-265adc2c7f31/605ec6e450a81e1acfeedc06444450f9/dotnet-sdk-9.0.100-preview.3.24204.13-osx-x64.pkg", + "hash": "7ae365e863a76a52b2c646bf34ca444b6ec08118edb4f52391d013c22f2fe9df1ceab75156b3c48d16d564baa02c71093b9b9e0edac01a6e2a0b311182bbe561" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f11c0612-bf78-41ae-836b-2b3c8765fdfb/feac36e69a3ca718c3c0d12dec3661b5/dotnet-sdk-9.0.100-preview.3.24204.13-osx-x64.tar.gz", + "hash": "1c0d5a8751f36b4e2f0d2971600a6f870155dd12e0a0669951d99b1d50b8021c51a5c9df447ecd8bb53c3ceaa6f4467edc0eb357bcc8d26e272b5ea121f170f7" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/b790cf13-8249-4fba-95ea-4e730138457a/c59c22cc546b7d1bac832c1000e9e9e7/dotnet-sdk-9.0.100-preview.3.24204.13-win-arm64.exe", + "hash": "ad7114b1a961db4797a733cd2823aa6a5735103290b282f1b0a3bf0917d360d8fac931d629d94ecc3f8ffac50cb6bcf4c0afdcb48b1dbc621fc59348abccf524" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/8d18eaf5-8c36-4485-83e8-6c9569e25bf6/167d5db5b84f7080d1ba9098d464efea/dotnet-sdk-9.0.100-preview.3.24204.13-win-arm64.zip", + "hash": "1fb88185859896b2fc6e0e6f867b6a27cdea13aa414c8c6b606ce72b48148fd938209fb49c073316689a5bcc739443a647fa60b98b6ffedb0fd508886096b7e9" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/509db05f-a1fa-4420-a8e8-20249073f3fa/a699c2bd1b7bd10346a175117877d455/dotnet-sdk-9.0.100-preview.3.24204.13-win-x64.exe", + "hash": "d8f49442160a7a92b617a59eaf8fdc4ca776739429f79a7dfd5da4486629a8b6df1999cf2adb3d06ae715a31a8fc3aa355329a87d2780724874afa5028688898" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/b50c34cf-e50a-4e64-9bdc-cbd984d44acb/9cba57d4130ef9451e2a9ec218d2c83d/dotnet-sdk-9.0.100-preview.3.24204.13-win-x64.zip", + "hash": "55114bd014d2613aa35e91148bad263cfe0fd8499995c9641bdfff1b7c2f10c70add06c1d9c016f60fe7c4d144725154187a7c0ad4b1296f1ec32e876ae3ceed" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/cb5b922d-65ac-4829-b035-2a2df6cd88f7/7623d8b2c846c77dc1dc9c2d19e1214d/dotnet-sdk-9.0.100-preview.3.24204.13-win-x86.exe", + "hash": "24bc29abc7c11988648584adbd17d9d3f8694b7b2ed622f860709a680f7eee97b12de34470c78a9718383cc33ee8934d19e3193475a6a7f304b65cdb02468f33" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/5ff67d85-1737-499a-b12d-274b4d7ae73e/5b3dba505826bcff95607e5b0185770f/dotnet-sdk-9.0.100-preview.3.24204.13-win-x86.zip", + "hash": "e240c2ebfa0089b95077f297748988b9c1cfd662fc39616b225c479f810dbe7ffafc91c5c3faf7cdf633be2660e1aee3d201209122cc30a9a66be21273197741" + } + ] + } + ], + "aspnetcore-runtime": { + "version": "9.0.0-preview.3.24172.13", + "version-display": "9.0.0-preview.3", + "version-aspnetcoremodule": [ + "19.0.24083.0" + ], + "vs-version": "", + "files": [ + { + "name": "aspnetcore-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/889f7855-0c73-459e-a02f-eafa99a8e500/586101e88960a4424001143dc71b5d90/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-arm.tar.gz", + "hash": "ad4540890752e278406a7a731705251e9e803100ea8784f3ea9ab499ae24bdf3fa09456b324834953775f5edea019a3e80c608d9ebfc7de0cb2ff430a0234e3c" + }, + { + "name": "aspnetcore-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/b7eb8865-5ff1-493d-b2f2-add90226b29d/901cff3eca56382d9bd7ca0f7e0087e7/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-arm64.tar.gz", + "hash": "e484d1530bb8462f5956d50b0055407a5b697f176f43a8e97b26d80c0507f9373b950f962a5144f7876e4c699b2fd29a63eeda71b090fb80c4885750d73cc42a" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/d568896f-9f13-4dfa-a486-20e54d717c16/8daa58ccb02ea0003b54c10f6c0a3785/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-musl-arm.tar.gz", + "hash": "70700a6ac11a4a4e192e8d536d7dbe746aa2b209fbe5522a9bb6b09988b1d40019d03327a1e79917f04a8008581b685f7b6fc925750ffc6e0de4877955ebbad8" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/ca2b4853-a3a8-4b0b-be76-f3f9dfb7e34d/7574a7679a38e6dadf61a0c5e4bf5ce3/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-musl-arm64.tar.gz", + "hash": "6011b173f4f31ad942f4911623b1b0175e03c160ea55b2d50c454bc0a921ab3f35a5ad2f822590ccab5ea3470ba0f5ac9a617386e4538f82b235ff68e46ab6a9" + }, + { + "name": "aspnetcore-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/382eb79b-f802-4b3f-b6c0-7efcefff5aab/ed7c9079ae9a02d84c126c4ebf5097f4/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-musl-x64.tar.gz", + "hash": "8e6c42872a062f50e25432e0945a18ff4508d708983f004bfcb619c76d5e13b5dd0653cffc5931ec7834d1d7db174566b4d9d00016c838f98b351d821e012334" + }, + { + "name": "aspnetcore-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/37747dcd-c967-4c91-8928-959b32b706bc/2cb1cf0735fcea5d7eadda52bd5a6cc2/aspnetcore-runtime-9.0.0-preview.3.24172.13-linux-x64.tar.gz", + "hash": "319f2700c3a954a1e6e0dd01b45c18dfe7d3728fe175b82cbdbdd928c2f64c5fc6f53b7c44f753cf59fb7c32649fab95f0245e5077ae3f607b8f59b5e9cd417d" + }, + { + "name": "aspnetcore-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5b68ce5e-aea0-47de-bdfd-5a0eb0e9b1a8/67b0d4863b14455f45b2ff1a916bcd6c/aspnetcore-runtime-9.0.0-preview.3.24172.13-osx-arm64.tar.gz", + "hash": "c216b72b3ed028cc49ac5e6c50612b77eaadb7834e21a4ef89bce346c7eb1e55bcaced48131ba68ed00d381ea0321501e9b9a0cddff088dd6ff96d5b04be6e6c" + }, + { + "name": "aspnetcore-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0b4dddc0-6afc-47c6-a878-4ef939e4f46e/70f229cbcc2f968e7dd3cf53bc7132be/aspnetcore-runtime-9.0.0-preview.3.24172.13-osx-x64.tar.gz", + "hash": "6f2f4b7ad18311259864f1fe2b2ab4b78e60e035213951eed77f9fcd41488bd9f1a6360bad348af130e3984cffb7e7d7b16406c5ae2bdbd4e75a6eb28924cb68" + }, + { + "name": "aspnetcore-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/daccd7a8-ee29-4398-9c0f-53ee52a8348e/dff56958bb98da605699647134b3fa60/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-arm64.zip", + "hash": "023e2058f0f036c07ae383505305b4e46ea1be75bc5204be9d0ac864f88fa6d126e7ffeb158635c717e98a1b1f7e42b69dd44a5fe8ad4f17a332141ca91f1c8f" + }, + { + "name": "aspnetcore-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0dd6eca2-4194-4784-b60e-5def59f82a53/7c5bbe6d6c403261ed81c9a0fbe8354f/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-x64.exe", + "hash": "3e2949483b1453bf0edea37eda3395f8c582c56fab65a4a315ed84e53b6ab9acda27764332911abbb16cf49c3b7844024a7235cba58f3c12f44643dccf45f768" + }, + { + "name": "aspnetcore-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f3982a9e-ef26-4506-a03e-b7f492df4e5f/677debf2487991af87442a9b07ae2466/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-x64.zip", + "hash": "6e3d9ff40c04eb382ce4d3603892733e43c58c47472c571efdc12e8be7f52a338fa46659137c9320fecaae4288ce81ca6f41a5bec32e73511b9014ebca7a4c99" + }, + { + "name": "aspnetcore-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/5c3f1910-1f0b-49ef-917f-e438af26f069/658cc32133053424f78e9cf4c2ac8475/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-x86.exe", + "hash": "b1e8df9ed48bdc53c03a309ffd58c5aa91f999067258f7e905573011a57f93b3b406a829dfe2f760d6fe68fb5cc8b347812b9a01b3e9722de08a2cda0bda94fc" + }, + { + "name": "aspnetcore-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/fb3609f3-44c7-4591-9095-db37485716c3/49c7db163acfaac6cf65884ab93a5ddd/aspnetcore-runtime-9.0.0-preview.3.24172.13-win-x86.zip", + "hash": "501f5353a720e0e4a976c4cae5875da7ccb7a5cc9c93343f732bc182ac0a457f6cea8ba2edc33a7665849d558c213e3ffbb16b85110c61d47b776487da4b35b0" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/97290bb1-9a86-47e0-ad8a-8027c080999e/ac2621ad5bced59e859c6a4b1468a87f/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-arm.tar.gz", + "hash": "a6958b10bb735875670bb280b6187f963b65fa2a02f49848096b2a6c06526a39accefbf362394d6cb82d5cce65eb1819762365c7114cd7b7748908f814fdebca" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f787be98-8e32-4356-94cf-afdbfc89807c/908078a68902b7db3419cdfe66aa28cc/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-arm64.tar.gz", + "hash": "88edee0dbe7c16409674db0442b5098a92d9d22f2d6e4d8bf27e44a6415f38023bab96174d45a33a9bfdcb88bf896ba6acfb36b6f7fec7323dbb18e472bebdc1" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/e5c76b43-b251-4796-9ca7-a060e73372a4/da95c6e26f9c56ea5dd9a0ffeb45d986/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-musl-arm.tar.gz", + "hash": "370274b311ae9671f2aeb38b313b05cdbc6b04eeb96146ad82ab7b3b9e65fa2d2fbc03f4343026c4fb81106fa97fbfaaaf933127c8ae9bfc9c91fe6aa3c6786a" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/55bdb213-5027-4ef3-b23f-4833298c2312/896cd4a98a5b29100519c5f8bac55ad9/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-musl-arm64.tar.gz", + "hash": "cf1432c021e7e639d1eefc18f7feeb0c2a11ebec19dddf3e101903d7a3171b1b9415270e8b4086a19f86ffe2a1cb6ec4e73c391ac3040caaf9dd32b2f8d06136" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/d86383e0-8ba1-4bbc-b79a-b51906336d40/ae0a563e8efd2a8f73eaf2985909565b/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-musl-x64.tar.gz", + "hash": "f6861aa3ef052d5a4140ce771cee2cd62c07256043581ff06e601d8d4f95a344bf90c86fbf22ec55d9a130e4b205b18e7711af3dba7a03e1741f2abd02f74f58" + }, + { + "name": "aspnetcore-runtime-composite-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/35d8c84e-43ba-4a6d-8151-ca2b2cefdbeb/46e265a8e72808dc3f82990d13beb955/aspnetcore-runtime-composite-9.0.0-preview.3.24172.13-linux-x64.tar.gz", + "hash": "7a4b00241a2a91cf7dd3ca391b4f64edefc4179c351eeb0aa260c27680510be71b4fbc1f07ac7682208c73e879a40fdf3943b5cdf58456d7a4763665e46e8258" + }, + { + "name": "dotnet-hosting-win.exe", + "rid": "", + "url": "https://download.visualstudio.microsoft.com/download/pr/f28df469-8a85-4d55-9c4c-957b8c79a7d0/902f993af8ee3aaaf646bc55c4cf668f/dotnet-hosting-9.0.0-preview.3.24172.13-win.exe", + "hash": "bf6f9cbe3dea1e45f7fe831d9a8ccbb46f744c479f22449908e328a388d8517f5f38caac5cd8345166279b79f653a040399a85f18f75da63d983199ddd1ca340", + "akams": "https://aka.ms/dotnetcore-9-0-windowshosting" + } + ] + }, + "windowsdesktop": { + "version": "9.0.0-preview.3.24175.3", + "version-display": "9.0.0-preview.3", + "files": [ + { + "name": "windowsdesktop-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/505f54ed-7158-4708-8111-b3cac859e452/28d77d115e8c3179b0752d7a1fe89dcc/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-arm64.exe", + "hash": "4b15257cd6b655483677a1b842b011ca6cc3937ae6ee3ee7873fdc99197911618d7049480ebf43642ca4eb65a43edc322f6ec62f0c20759406b0f95376d586b5" + }, + { + "name": "windowsdesktop-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/b4dbf836-975c-4413-9319-b3e40f633fd1/668ed496071d38cf29863e60a8f5a263/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-arm64.zip", + "hash": "0552d7553ec1a44d215d41bace840366e93530ff352a51988c297bd13bac4dfb09759473878de199e92aa8dda6323cf93b74dec1570f72b77cdec87e2b3448f6" + }, + { + "name": "windowsdesktop-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/678121c1-dd28-4eb9-9389-139d270d0f8c/4bc7282a6ebd29714ff7767871308a71/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-x64.exe", + "hash": "a0dcd0adbf301165d90085be2ef05cfdcc100224c6097a98ad056df70351f974bdf8dbc129e8927f5f473b6ccd0932288be0467d629f932c7db43a45e2b14af0" + }, + { + "name": "windowsdesktop-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/27d8d431-11d7-47fb-9510-2e2419f80561/e7d7a221ec27b3274b981782893fd2dc/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-x64.zip", + "hash": "58024d2eb7284a46d8393000e8d93083699fef472d9a9eedcecd17a98ad45b81636ac67fa6cda2e62c34e8a27038ff75d07de0fe5f8bc7d6e58da879777615c7" + }, + { + "name": "windowsdesktop-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/2dbf9b41-0a0c-4ca5-8b64-e3d7f9f74048/7d5eb210b81b7357cbdf8bc7b5d54754/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-x86.exe", + "hash": "2e2faa1c23a40a2459670a1af10b802e6e295dc3c3ac6e5f593fcb5de756912707009bb3e8a98f2f3e07b089b984083158417a5d3d383becbc0a0aaa33ffb3b5" + }, + { + "name": "windowsdesktop-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/ad07edbf-1cff-4e61-8273-847688e323e3/b7a65770015e2c1b7a8a4927e537f8e1/windowsdesktop-runtime-9.0.0-preview.3.24175.3-win-x86.zip", + "hash": "4032a8bac5d08289dcc4b124ef1e5922ed3133f5ba9ec5bdfb86203fc93787f2fe68b1231ad1ba238341ba5bdc47e0eb6309c6bab3d0d56be9bca8d135e462e6" + } + ] + } + }, { "release-date": "2024-03-12", "release-version": "9.0.0-preview.2", diff --git a/release-notes/README.md b/release-notes/README.md index db054613..c0baac00 100644 --- a/release-notes/README.md +++ b/release-notes/README.md @@ -4,14 +4,14 @@ The following [.NET releases](../releases.md) are currently supported: | Version | Release Date | Support | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | -| [.NET 9](9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.2][9.0.0-preview.2] | | +| [.NET 9](9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.3][9.0.0-preview.3] | | | [.NET 8](8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.4][8.0.4] | November 10, 2026 | | [.NET 7](7.0/README.md) | [November 8, 2022](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/) | [STS][policies] | [7.0.18][7.0.18] | May 14, 2024 | | [.NET 6](6.0/README.md) | [November 8, 2021](https://devblogs.microsoft.com/dotnet/announcing-net-6/) | [LTS][policies] | [6.0.29][6.0.29] | November 12, 2024 | You can find release notes for all releases, including out-of-support releases, in the [release-notes](.) directory. -[9.0.0-preview.2]: 9.0/preview/preview2/9.0.0-preview.2.md +[9.0.0-preview.3]: 9.0/preview/preview3/9.0.0-preview.3.md [8.0.4]: 8.0/8.0.4/8.0.4.md [7.0.18]: 7.0/7.0.18/7.0.18.md [6.0.29]: 6.0/6.0.29/6.0.29.md diff --git a/release-notes/releases-index.json b/release-notes/releases-index.json index 9f7dfede..582dd9a9 100644 --- a/release-notes/releases-index.json +++ b/release-notes/releases-index.json @@ -3,11 +3,11 @@ "releases-index": [ { "channel-version": "9.0", - "latest-release": "9.0.0-preview.2", - "latest-release-date": "2024-03-12", + "latest-release": "9.0.0-preview.3", + "latest-release-date": "2024-04-11", "security": false, - "latest-runtime": "9.0.0-preview.2.24128.5", - "latest-sdk": "9.0.100-preview.2.24157.14", + "latest-runtime": "9.0.0-preview.3.24172.9", + "latest-sdk": "9.0.100-preview.3.24204.13", "product": ".NET", "release-type" : "sts", "support-phase": "preview", diff --git a/releases.md b/releases.md index 83406e35..724ee86d 100644 --- a/releases.md +++ b/releases.md @@ -10,12 +10,12 @@ The following table lists in-support .NET releases. | Version | Release Date | Support | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | -| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.2][9.0.0-preview.2] | | +| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.3][9.0.0-preview.3] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.4][8.0.4] | November 10, 2026 | | [.NET 7](release-notes/7.0/README.md) | [November 8, 2022](https://devblogs.microsoft.com/dotnet/announcing-dotnet-7/) | [STS][policies] | [7.0.18][7.0.18] | May 14, 2024 | | [.NET 6](release-notes/6.0/README.md) | [November 8, 2021](https://devblogs.microsoft.com/dotnet/announcing-net-6/) | [LTS][policies] | [6.0.29][6.0.29] | November 12, 2024 | -[9.0.0-preview.2]: release-notes/9.0/preview/preview2/9.0.0-preview.2.md +[9.0.0-preview.3]: release-notes/9.0/preview/preview3/9.0.0-preview.3.md [8.0.4]: release-notes/8.0/8.0.4/8.0.4.md [7.0.18]: release-notes/7.0/7.0.18/7.0.18.md [6.0.29]: release-notes/6.0/6.0.29/6.0.29.md