From 7a408d81fee090b6a117b745e4e507a47dc638d6 Mon Sep 17 00:00:00 2001 From: "Rahul Bhandari (DEVDIV)" Date: Tue, 13 Feb 2024 09:08:25 -0800 Subject: [PATCH 01/16] Artifacts for .NET 9.0 Preview 1 Release --- README.md | 6 - release-notes/9.0/README.md | 18 +- release-notes/9.0/get-started.md | 14 + release-notes/9.0/install-linux.md | 64 +++ release-notes/9.0/install-macos.md | 49 ++ release-notes/9.0/install-windows.md | 64 +++ release-notes/9.0/install-workloads.md | 25 + release-notes/9.0/install.md | 95 ++++ release-notes/9.0/linux-packages.md | 107 ++++ release-notes/9.0/preview/9.0.0-preview.1.md | 165 ++++++ .../9.0/preview/preview1/9.0.0-preview.1.md | 166 ++++++ release-notes/9.0/preview/preview1/README.md | 21 + .../9.0/preview/preview1/aspnetcore.md | 138 +++++ .../9.0/preview/preview1/dotnetmaui.md | 31 ++ .../9.0/preview/preview1/efcoreanddata.md | 58 ++ .../9.0/preview/preview1/libraries.md | 217 ++++++++ release-notes/9.0/preview/preview1/runtime.md | 85 +++ release-notes/9.0/preview/preview1/sdk.md | 45 ++ release-notes/9.0/releases.json | 518 ++++++++++++++++++ release-notes/9.0/supported-os.md | 13 +- release-notes/releases-index.json | 12 + 21 files changed, 1896 insertions(+), 15 deletions(-) create mode 100644 release-notes/9.0/get-started.md create mode 100644 release-notes/9.0/install-linux.md create mode 100644 release-notes/9.0/install-macos.md create mode 100644 release-notes/9.0/install-windows.md create mode 100644 release-notes/9.0/install-workloads.md create mode 100644 release-notes/9.0/install.md create mode 100644 release-notes/9.0/linux-packages.md create mode 100644 release-notes/9.0/preview/9.0.0-preview.1.md create mode 100644 release-notes/9.0/preview/preview1/9.0.0-preview.1.md create mode 100644 release-notes/9.0/preview/preview1/README.md create mode 100644 release-notes/9.0/preview/preview1/aspnetcore.md create mode 100644 release-notes/9.0/preview/preview1/dotnetmaui.md create mode 100644 release-notes/9.0/preview/preview1/efcoreanddata.md create mode 100644 release-notes/9.0/preview/preview1/libraries.md create mode 100644 release-notes/9.0/preview/preview1/runtime.md create mode 100644 release-notes/9.0/preview/preview1/sdk.md create mode 100644 release-notes/9.0/releases.json diff --git a/README.md b/README.md index 2a647ba98e..0ffd9f8053 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,6 @@ Welcome to the home of .NET news & release notes to help you stay up to date wit Follow our [GitHub Discussions](https://github.com/dotnet/core/discussions), where you will find the latest new on preview releases, service releases, and CVEs for .NET. -You can subscribe to news posts with the following feeds: -* All Discussions: https://github.com/dotnet/core/discussions.atom -* News: https://github.com/dotnet/core/discussions/categories/news.atom -* Security Disclosures (CVEs): https://github.com/dotnet/core/discussions/categories/security-disclosures-cves.atom -* Sevicing Releases: https://github.com/dotnet/core/discussions/categories/servicing-releases.atom - ## Release Notes The following [.NET releases](./releases.md) are currently supported: diff --git a/release-notes/9.0/README.md b/release-notes/9.0/README.md index 8956c0045f..3d617aefa3 100644 --- a/release-notes/9.0/README.md +++ b/release-notes/9.0/README.md @@ -1,5 +1,19 @@ # .NET 9 -.NET 9 is a [Standard Term Support (STS)](../../release-policies.md) release. +[.NET 9](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/) is a [Standard Term Support (STS)](../../release-policies.md) release and will be supported for 18 months, from November 12th, 2024 to May 13th, 2026. It is [supported](../../support.md) on [multiple operating systems](supported-os.md). + + + +- [Downloads](https://dotnet.microsoft.com/download/dotnet/9.0) +- [Linux Package Managers](https://learn.microsoft.com/dotnet/core/install/linux) +- [Containers](https://mcr.microsoft.com/catalog?search=dotnet/) +- [Supported OSes](supported-os.md) +- [Known Issues](known-issues.md) +- [Installation instructions](install.md) + +## Releases + +| Date | Release | +| :-- | :-- | +| 2023/02/13 | [9.0.0 Preview 1](preview/preview1/README.md) | -More information coming soon. diff --git a/release-notes/9.0/get-started.md b/release-notes/9.0/get-started.md new file mode 100644 index 0000000000..fca28168a4 --- /dev/null +++ b/release-notes/9.0/get-started.md @@ -0,0 +1,14 @@ + +# Get Started + +To get started with .NET 9, [install the .NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0). + +If you're on Windows using Visual Studio, we recommend installing the latest [Visual Studio 2022 preview](https://visualstudio.com/preview), or get started with Visual Studio Code and the [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit) extension. + + +## .NET MAUI + +Install the [.NET MAUI workload](install-workloads.md#net-maui) + + + diff --git a/release-notes/9.0/install-linux.md b/release-notes/9.0/install-linux.md new file mode 100644 index 0000000000..d31f4687cc --- /dev/null +++ b/release-notes/9.0/install-linux.md @@ -0,0 +1,64 @@ +# .NET 9 installation instructions for Linux + +The following instructions demonstrate installing .NET 9 on Linux. These instructions augment the more general [.NET install instructions](install.md), including installing with `.tar.gz` files, that work on multiple operating systems. + +[Linux package dependencies](linux-packages.md) describes the set of packages required to run .NET on Linux. + +## Distributions + +The following distributions are available for Linux: + +- .NET SDK: includes tools for building and testing applications, and includes the runtime distributions that follow. +- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications. +- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications. + +We recommend you install the .NET SDK to develop and build applications, and to install one of the runtime packages (like ASP.NET Core) to exclusively run applications. + +## Downloads + +Each of the distributions can be downloaded from: + +- [Microsoft .NET website](https://dotnet.microsoft.com/download/dotnet/9.0) +- [.NET 9 release notes](README.md) + +[Container images](https://hub.docker.com/r/microsoft/dotnet/) are provided for Linux (Alpine, Debian, and Ubuntu). + +## Install using deb/rpm packages + +Preview release installers are not available from the Microsoft package repositories. The steps below provide an easy way to install .NET 9 using your Distro package manager. + +**Note:** `curl` must be available on the system before running the following steps. Once you have confirmed that `curl` is available, complete the steps to download and install the latest .NET 9 Preview SDK and Runtime. + +1. Create a directory to use for the download location and change into that directory. For example, `mkdir $HOME/dotnet_install && cd $HOME/dotnet_install` +2. Run `curl -L https://aka.ms/install-dotnet-preview -o install-dotnet-preview.sh` +3. Run the script with `sudo bash install-dotnet-preview.sh` + +Here's what the script does. + +- Detects the distribution and version. The script supports platforms and versions listed in [.NET 9.0 - Supported OS versions](https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md). +- Determines if additional system dependencies or utilities are needed to successfully complete and install them. For example, `tar` is used to unpack the installer packages. +- Downloads the tar.gz containing the .NET preview installer packages for the detected distribution. +- Downloads the system dependency installer, if needed. +- Expands the tar.gz into ./dotnet_packages +- Attempts to install the contents of ./dotnet_packages using `rpm` or `dpkg`, as appropriate, for the detected distribution. + +## Installing from a binary archive + +You can install .NET with a binary archive. This option is required if you want to install .NET for a single user. It is also recommended if you want to install .NET temporarily. + +The following workflow demonstrates downloading, unpacking, configuring, and running the .NET SDK from the command line. You may choose to do some of these tasks via the browser and functionality provided by your operating system. + +```bash +~# curl -Lo dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz +~# mkdir dotnet +~# tar -C dotnet -xf dotnet.tar.gz +~# rm dotnet.tar.gz +~# export DOTNET_ROOT=~/dotnet +~# export PATH=$PATH:~/dotnet +~# dotnet --version +9.0.100-preview.1.24101.2 +``` + +The `DOTNET_ROOT` environment variable is required to launch an application with their executables (like `myapp.exe`). The executables look for this environment variable to find the runtime if it isn't installed in its regular location. The `PATH` environment variable must be updated if you want to use `dotnet` without absolute paths to its location. Setting both of these environment variables is optional. + +You can add your .NET install location permanently to your path if you'd like. diff --git a/release-notes/9.0/install-macos.md b/release-notes/9.0/install-macos.md new file mode 100644 index 0000000000..e036ab098e --- /dev/null +++ b/release-notes/9.0/install-macos.md @@ -0,0 +1,49 @@ +# .NET 9 installation instructions for macOS + +The following instructions demonstrate installing .NET 9 on macOS. These instructions augment the more general [.NET install instructions](install.md), including installing with `.tar.gz` files, that work on multiple operating systems. + +## Distributions + +The following distributions are available for Linux: + +- .NET SDK: includes tools for building and testing applications, and includes the runtime distributions that follow. +- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications. +- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications. + +We recommend you install the .NET SDK to develop and build applications, and to install one of the runtime packages (like ASP.NET Core) to exclusively run applications. + +## Downloads + +Each of the distributions can be downloaded from: + +- [Microsoft .NET website](https://dotnet.microsoft.com/download/dotnet/9.0) +- [.NET 9 release notes](README.md) + +[Container images](https://hub.docker.com/r/microsoft/dotnet/) are provided for Linux (Alpine, Debian, and Ubuntu). + +## Install using PKG + +You can install any of the distributions with PKG. The following image demonstrates installing the .NET SDK. After launching the PKG, click "Continue" and you will be taken through the process of installing the SDK. + +![image](https://user-images.githubusercontent.com/2608468/112776700-355d5280-8ff5-11eb-979c-8cab273f5f97.png) + +## Installing from a binary archive + +You can install .NET with a binary archive. This option is required if you want to install .NET for a single user. It is also recommended if you want to install .NET temporarily. + +The following workflow demonstrates downloading, unpacking, configuring, and running the .NET SDK from the command line. You may choose to do some of these tasks via the browser and functionality provided by your operating system. + +```bash +~# curl -Lo dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz +~# mkdir dotnet +~# tar -C dotnet -xf dotnet.tar.gz +~# rm dotnet.tar.gz +~# export DOTNET_ROOT=~/dotnet +~# export PATH=$PATH:~/dotnet +~# dotnet --version +9.0.100-preview.1.24101.2 +``` + +The `DOTNET_ROOT` environment variable is required to launch an application with their executables (like `myapp.exe`). The executables look for this environment variable to find the runtime if it isn't installed in its regular location. The `PATH` environment variable must be updated if you want to use `dotnet` without absolute paths to its location. Setting both of these environment variables is optional. + +You can add your .NET install location permanently to your path if you'd like. diff --git a/release-notes/9.0/install-windows.md b/release-notes/9.0/install-windows.md new file mode 100644 index 0000000000..2dff2de5aa --- /dev/null +++ b/release-notes/9.0/install-windows.md @@ -0,0 +1,64 @@ +# .NET 9 installation instructions for Windows + +The following instructions demonstrate installing .NET 9 on Windows. These instructions augment the more general [.NET install instructions](install.md), including installing with `.zip` files, that work on multiple operating systems. + +## Distributions + +The following distributions are available for Windows: + +- .NET SDK: includes tools for building and testing applications, and includes the runtime distributions that follow. +- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications. +- .NET Desktop Runtime: includes the .NET runtime and Windows desktop libraries, enabling running console, Windows Forms, and Windows Presentation Framework (WPF) applications. +- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications. +- ASP.NET Core Hosting Bundle: includes the ASP.NET Core runtime and IIS support (for running both in- and out-of-process with IIS). + +We recommend you install the .NET SDK to develop and build applications, and to install one of the runtime packages (like ASP.NET Core) to exclusively run applications. + +## Downloads + +Each of the distributions can be downloaded from: + +- [Microsoft .NET website](https://dotnet.microsoft.com/download/dotnet/9.0) +- [.NET 9 release notes](README.md) + +[Container images](https://hub.docker.com/_/microsoft-dotnet) are provided for Windows (Nano Server and Server Core) and Linux (Alpine, Debian, and Ubuntu). + +## Windows Package Manager CLI (winget) + +You can now install .NET updates using the Windows Package Manager CLI (winget): + +- To install the .NET 9 runtime: `winget install dotnet-runtime-9` +- To install the .NET 9 SDK: `winget install dotnet-sdk-9` +- To update an existing installation: `winget upgrade` + +See [Install with Windows Package Manager (winget)](https://learn.microsoft.com/dotnet/core/install/windows?tabs=net70#install-with-windows-package-manager-winget) for more information. + +## Install using MSI + +You can install any of the distributions with MSI. The following image demonstrates installing the .NET SDK. After launching the MSI, click "Install" and you will be taken through the process of installing the SDK. + +![dotnet installer](https://github.com/dotnet/core/assets/44339330/62cbf002-89ab-4d63-9f0a-69460a6ab3d0) + +## Windows Server Hosting with IIS + +You should install the Hosting Bundle MSI if you want to enable hosting ASP.NET Core with IIS. + +## Installing from a binary archive + +You can install .NET with a binary archive. This option is required if you want to install .NET for a single user. It is also recommended if you want to install .NET temporarily. + +The following workflow demonstrates downloading, unpacking, configuring, and running the .NET SDK from the command line. You may choose to do some of these tasks via the browser and functionality provided by your operating system. + +```console +C:\>curl -Lo dotnet.zip https://download.visualstudio.microsoft.com/download/pr/bb120bd7-6656-4ebf-9efc-87dbbbd2f344/ef7cb2cf73d9a740c2af0b4ca9c2266e/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.exe +C:\>tar -C dotnet -xf dotnet.zip +C:\>del dotnet.zip +C:\>set DOTNET_ROOT=C:\dotnet +C:\>set PATH=%PATH%;C:\dotnet +C:\>dotnet --version +9.0.100-preview.1.24101.2 +``` + +The `DOTNET_ROOT` environment variable is required to launch an application with their executables (like `myapp.exe`). The executables look for this environment variable to find the runtime if it isn't installed in its regular location. The `PATH` environment variable must be updated if you want to use `dotnet` without absolute paths to its location. Setting both of these environment variables is optional. + +You can add your .NET install location permanently to your path if you'd like. diff --git a/release-notes/9.0/install-workloads.md b/release-notes/9.0/install-workloads.md new file mode 100644 index 0000000000..c6a2e19836 --- /dev/null +++ b/release-notes/9.0/install-workloads.md @@ -0,0 +1,25 @@ +# .NET Workloads + +After installing .NET 9 previews, you can install workloads by following these instructions. For more information read through the [documentation](https://learn.microsoft.com/dotnet/core/tools/dotnet-workload). + +## .NET MAUI + +Install the .NET MAUI workload: + +``` +> dotnet workload install maui +... +Successfully installed workload(s) maui. +``` + +Verify installation: + +``` +> dotnet workload list + +Installed Workload Id Manifest Version Installation Source +-------------------------------------------------------------------------------------------- +maui 9.0.0-preview.1.9973/9.0.100-preview.1 SDK 9.0.100-preview.1 +``` + +Installing the `maui` workload includes `android`, `ios`, and `maccatalyst` workloads which may be installed independently. Run `dotnet workload search` for a full list of available workload configurations. \ No newline at end of file diff --git a/release-notes/9.0/install.md b/release-notes/9.0/install.md new file mode 100644 index 0000000000..6772831a4d --- /dev/null +++ b/release-notes/9.0/install.md @@ -0,0 +1,95 @@ +# .NET 9 installation instructions + +Concise install instructions are provided in this document and may be augmented in [release notes](README.md) for a given update. Complete [.NET installation instructions for Windows, macOS, and Linux](https://learn.microsoft.com/dotnet/core/install/) are provided for supported releases in [.NET documentation](https://learn.microsoft.com/dotnet). + +Operating system specific instructions: + +- [Linux](install-linux.md) +- [macOS](install-macos.md) +- [Windows](install-windows.md) + +## [Using dotnet-install-scripts](https://learn.microsoft.com/dotnet/core/tools/dotnet-install-script) + +### Install the latest preview version of the 9.0.1xx SDK to the specified location + +Windows: + +```console +./dotnet-install.ps1 -Channel 9.0.1xx -Quality preview -InstallDir C:\cli +``` + +macOS/Linux: + +```console +./dotnet-install.sh --channel 9.0.1xx --quality preview --install-dir ~/cli +``` + +### Install the latest preview version of the 9.0.0 runtime to the specified location + +Windows: + +```console +.\.dotnet\dotnet-install.ps1 -Channel 9.0 -Runtime dotnet -Quality preview -InstallDir c:\cli +``` + +macOs/Linux: + +```console +./dotnet-install.sh --runtime dotnet --channel 9.0 --quality preview --install-dir ~/cli +``` + +## Distributions + +The following distributions are available for all operating systems: + +- .NET SDK: includes tools for building and testing applications, and includes the runtime distributions that follow. +- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications. +- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications. + +We recommend that you install the .NET SDK to develop and build applications, and to install one of the runtime packages (like ASP.NET Core) to (exclusively) run applications. + +## Downloads + +Download links are provided for each of the distributions at: + +- [Microsoft .NET website](https://dotnet.microsoft.com/download/dotnet/9.0) +- [.NET 9 release notes](preview/README.md) + +[Container images](https://hub.docker.com/r/microsoft/dotnet/) are provided for Windows (Nano Server, and Server Core) and Linux (Alpine, Debian, and Ubuntu). + +## What's installed? + +You can determine what is installed on your machine (assuming .NET is installed) using the following approach, with `dotnet --info`. + +```console +C:\>dotnet --info +.NET SDK (reflecting any global.json): +Version: 9.0.100-preview.1.24101.2 + Commit: 0a5360315a + +Runtime Environment: + OS Name: Mac OS X + OS Version: 12.6 + OS Platform: Darwin + RID: osx.12-x64 + Base Path: /usr/local/share/dotnet/x64/sdk/9.0.100-preview.1.24101.2/ + +Host: + Version: 9.0.0-preview.1.24080.9 + Architecture: x64 + Commit: 550605cc93 + +.NET SDKs installed: +9.0.100-preview.1.24101.2 [/usr/local/share/dotnet/x64/sdk] + +.NET runtimes installed: + Microsoft.AspNetCore.App 9.0.0-preview.1.24081.5 [/usr/local/share/dotnet/x64/shared/Microsoft.AspNetCore.App] + Microsoft.NETCore.App 9.0.0-preview.1.24080.9 [/usr/local/share/dotnet/x64/shared/Microsoft.NETCore.App] +``` + +If you have the .NET SDK installed, you can also use `dotnet --version` as demonstrated in the following example: + +```console +C:\>dotnet --version +9.0.100-preview.1.24101.2 +``` diff --git a/release-notes/9.0/linux-packages.md b/release-notes/9.0/linux-packages.md new file mode 100644 index 0000000000..29591f1b40 --- /dev/null +++ b/release-notes/9.0/linux-packages.md @@ -0,0 +1,107 @@ +# .NET 9 Linux package dependencies + +.NET 9 has several dependencies that must be satisfied to run .NET apps. The commands to install these libraries are listed for multiple Linux distributions. + +Feel free to contribute packages for distributions not (yet) listed in this document, including ones not supported by the .NET Team. + +Tips: + +- [runtime-deps container images](https://github.com/dotnet/dotnet-docker/tree/main/src/runtime-deps) installs these same packages. You can look at those dockerfiles. +- [pkgs.org](https://pkgs.org/) is a useful site for searching for packages, to find the one for your distribution. + +## Packages + +.NET depends on the following packages. + +- [GNU C Library (glibc)](https://www.gnu.org/software/libc/libc.html) +- [GNU C++ Library](https://gcc.gnu.org/onlinedocs/libstdc++/) +- [GCC low-level runtime library](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html) +- [ICU](http://site.icu-project.org/) +- [Kerberos](http://web.mit.edu/kerberos/) +- [Open SSL](https://www.openssl.org/) +- [zlib compression library](https://www.zlib.net/) + +You do not need to install ICU if you [enable globalization invariant mode](https://github.com/dotnet/runtime/blob/main/docs/design/features/globalization-invariant-mode.md#enabling-the-invariant-mode). + +If your app relies on `https` endpoints, you'll also need to install `ca-certificates`. + +## Alpine 3.19 +```bash +sudo apk add \ + libgcc \ + libssl3 \ + libstdc++ \ + zlib + ``` +## Debian 12 "bookworm" + +```bash +sudo apt-get update \ + &&sudo apt-get install -y --no-install-recommends \ + libc6 \ + libgcc-s1 \ + libicu72 \ + libssl3 \ + libstdc++6 \ + tzdata \ + zlib1g \ + ``` +## Debian 11 "Bullseye" +``` bash +sudo apt-get update \ + &&sudo apt-get install -y --no-install-recommends \ + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu67 \ + libssl1.1 \ + libstdc++6 \ + zlib1g +``` + +## Ubuntu 23.10"Mantic" +``` bash +sudo apt-get update \ + &&sudo apt-get install -y --no-install-recommends \ + libc6 \ + libgcc-s1 \ + libicu72 \ + libssl3 \ + libstdc++6 \ + tzdata \ + zlib1g \ +``` +## Ubuntu 22.04 "Jammy" + +``` bash +sudo apt-get update \ + &&sudo apt-get install -y --no-install-recommends \ + libc6 \ + libgcc-s1 \ + libicu70 \ + libssl3 \ + libstdc++6 \ + tzdata \ + zlib1g \ +``` + + + +## Community supported distros + +The following distros are not supported by the .NET team. The following package information is provided on an as-is basis. Feel free to contribute package information for the distro you use .NET with if it isn't listed. + +### Arch Linux + +```bash +sudo pacman -Sy \ + glibc \ + gcc \ + krb5 \ + icu \ + openssl \ + libc++ \ + zlib +``` + +This set of packages was tested on the Arch and Manjaro. diff --git a/release-notes/9.0/preview/9.0.0-preview.1.md b/release-notes/9.0/preview/9.0.0-preview.1.md new file mode 100644 index 0000000000..6abd60722b --- /dev/null +++ b/release-notes/9.0/preview/9.0.0-preview.1.md @@ -0,0 +1,165 @@ +# .NET 9.0.0 Preview 1 - February 13, 2024 + +The .NET 9.0.0 Preview 1 and .NET SDK 9.0.100-preview.1.23115.2 releases are available for download. The latest 9.0 release is always listed at [.NET 9.0 Releases](../README.md). + +## What's new in .NET 9 Preview 1 + +.NET 9 is the next major release of .NET following .NET 9. You can see some of the new features available with .NET 9 Preview 1 at [dotnet/core #xxxx](https://github.com/dotnet/core/issues/xxxx). + +See the [.NET][dotnet-blog], [EF Core][ef-blog] and [ASP.NET Core][aspnet-blog] blogs for additional details. +Here is list of some of the additions and updates we're excited to bring in Preview 1. + +* EntityFramework Core: [bugs][ef_bugs] | [features][ef_features] +* .NET SDK [bugs][sdk_bugs] + +## 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.1.23115.2 +``` + +## .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 + +You need [Visual Studio 17.4 latest preview](https://visualstudio.microsoft.com) to use .NET 9.0 on Windows. On macOS, you need the latest version of [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). The [C# extension](https://code.visualstudio.com/docs/languages/dotnet) for [Visual Studio Code](https://code.visualstudio.com/) supports .NET 9.0 and C# 11. + + +## Feedback + +Your feedback is important and appreciated. We've created an issue at [dotnet/core #8213](https://github.com/dotnet/core/issues/8213) for your questions and comments. + +[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/preview/9.0.0-preview.1.md + +[checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.1-sha.txt +[checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.1-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-8-preview-1 +[aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-1/ +[ef-blog]: https://devblogs.microsoft.com/dotnet/announcing-ef8-preview-1/ +[ef_bugs]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-bug +[ef_features]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-enhancement + +[aspnet_bugs]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+label%3ADone+label%3Abug +[aspnet_features]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+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.1.23110.8) +[dotnet-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/3b7465f1-467e-405b-bb4d-546e3f9026d1/818a6a302e7bde633ee0cc62b609aeab/dotnet-runtime-9.0.0-preview.1.23110.8-linux-arm.tar.gz +[dotnet-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/29109381-5068-4e80-a3f8-d0c825202bbc/b4205a8a483c639c0cfdf54bb1fb5ec6/dotnet-runtime-9.0.0-preview.1.23110.8-linux-arm64.tar.gz +[dotnet-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/4b5ac13b-eb03-468f-b47b-0c0b0a229c34/2b475a0d3fbff23b500230354db0ef87/dotnet-runtime-9.0.0-preview.1.23110.8-linux-musl-arm.tar.gz +[dotnet-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/2f8d9b41-337e-4b53-9c1b-a892dc6a8042/ee14d933741ebebc044f7a727d731fc9/dotnet-runtime-9.0.0-preview.1.23110.8-linux-musl-arm64.tar.gz +[dotnet-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/6c34a04d-9e4c-4644-ae8e-99e02c56bc47/dc4de18e698a932b91834495b9cae624/dotnet-runtime-9.0.0-preview.1.23110.8-linux-musl-x64.tar.gz +[dotnet-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/6c535b62-2132-4f07-90d0-2b172d18e436/b4b8aa2b558e1472c650a40707f25241/dotnet-runtime-9.0.0-preview.1.23110.8-linux-x64.tar.gz +[dotnet-runtime-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/da75b8f3-eaa6-4e81-89ea-5b1c357e1c14/1abeb68098e58c7c3a290e4d67920cf5/dotnet-runtime-9.0.0-preview.1.23110.8-osx-arm64.pkg +[dotnet-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/13005a07-288f-4c55-b874-71a336d4c687/ba476df7f39fd64214b1911ac4791c97/dotnet-runtime-9.0.0-preview.1.23110.8-osx-arm64.tar.gz +[dotnet-runtime-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/b2dfdd00-3ec3-4834-8790-daf3729388b7/fbcd513ad80edeed216a573706b31682/dotnet-runtime-9.0.0-preview.1.23110.8-osx-x64.pkg +[dotnet-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/02916946-04e0-45d1-b36d-07ebc9bab6c2/c160d7f42df423bd40d7251ee015b440/dotnet-runtime-9.0.0-preview.1.23110.8-osx-x64.tar.gz +[dotnet-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/f3aad036-4c65-4e2d-95b2-a7a3999f93de/c79f2f807a76114ba22270f29d88bff6/dotnet-runtime-9.0.0-preview.1.23110.8-win-arm64.exe +[dotnet-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/735b4b58-1993-4c90-af52-c18adcd78d27/2e24da183158102b29efac13d96c1078/dotnet-runtime-9.0.0-preview.1.23110.8-win-arm64.zip +[dotnet-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/0a3c32e2-f2fb-494e-b70f-690bcbb6943b/346acb237c1b630c21c112ec0163f3e6/dotnet-runtime-9.0.0-preview.1.23110.8-win-x64.exe +[dotnet-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/7518ee75-65fc-4f81-8b2c-cef15d4e9b09/fd3003f3de906ba1bf224d8396054def/dotnet-runtime-9.0.0-preview.1.23110.8-win-x64.zip +[dotnet-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/65710155-7232-446e-aece-8861bfe97624/28ceecaaef6fb9cbc531119d7973ff9e/dotnet-runtime-9.0.0-preview.1.23110.8-win-x86.exe +[dotnet-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/02a80df4-e93e-457b-ac26-638572a18fbb/8051f5da52a0c2fa91fb0d22e595ecdc/dotnet-runtime-9.0.0-preview.1.23110.8-win-x86.zip + +[//]: # ( WindowsDesktop 9.0.0-preview.1.23112.2) +[windowsdesktop-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/19536364-47ac-4668-93b4-7ac161113e97/b76d7bcc975d642ca2f2c6a9849868a6/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-arm64.exe +[windowsdesktop-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/62660c8f-16f1-4e3e-a08d-9ff07d982841/3a269998e9add66853b52ca3320a5ca3/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-arm64.zip +[windowsdesktop-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/16b93712-2a98-4e2e-ab28-8d195695163f/74e0b6eba4df1398c6eb5779bbb6ef32/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-x64.exe +[windowsdesktop-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/b4654cad-81ab-4b77-9e53-3d97c054367a/cd5145a9c61682028bca684b3b7d096b/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-x64.zip +[windowsdesktop-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/7568cf55-1140-4afd-bfc0-2af10198215b/d3323aac0a304959c625315bc618433e/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-x86.exe +[windowsdesktop-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/ae636827-07f0-49c7-9be7-45df8f4c9b3a/ec22c4e75a6800dcf7941547ba6409ee/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-x86.zip + +[//]: # ( ASP 9.0.0-preview.1.23112.2) +[aspnetcore-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/c1d2c535-8832-48c2-87bb-d033fc2c6f8b/80291a7b9988aca397cbe5ac8821d6cc/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-arm.tar.gz +[aspnetcore-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/63cbd12f-0328-4828-878c-4970ebe2561d/3b0e89d0e68beb6d09ad2323d64d039c/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-arm64.tar.gz +[aspnetcore-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/49f41a35-b175-4699-a6ab-aa6dffc806ee/3247951bf1976a38abe0e0c9d641802a/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-musl-arm.tar.gz +[aspnetcore-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/19630d64-685e-4882-a7e8-a70077642cec/0a7680100590d0d4bef2a6ee9004ab4e/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-musl-arm64.tar.gz +[aspnetcore-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f7a955d6-27fd-4a8f-8c1d-ccafe789c723/c01fcac1c82a6e52bd007a5f83d6251c/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-musl-x64.tar.gz +[aspnetcore-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/bcd36740-4478-4104-aad3-97de2eda3c63/4278c479d008a08a82e6ed799ea4cab6/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-x64.tar.gz +[aspnetcore-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/00e1ec5d-62c0-4084-bf5d-f5667a77afe5/f4d1ceeb2d51a60323084ef43317b1f2/aspnetcore-runtime-9.0.0-preview.1.23112.2-osx-arm64.tar.gz +[aspnetcore-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/60354a8c-773b-4999-af88-f6232bf5b644/19f1f472670e5625ee6a75d09b95653b/aspnetcore-runtime-9.0.0-preview.1.23112.2-osx-x64.tar.gz +[aspnetcore-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/a078e06e-3942-4fca-99ee-29e1aa50b07b/af7d350201b779ee06365f19f0e487e6/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-arm64.zip +[aspnetcore-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/12ddd219-183e-4c8f-9079-ed04118328ad/6a51b50f0469e83ab21656e89079ee4d/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-x64.exe +[aspnetcore-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/7a8d9400-6123-4da2-9425-2206666af7b7/234ab5bcdcc243f9a096deb6e5005629/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-x64.zip +[aspnetcore-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/d922e621-f8ad-49ae-b68f-468884902a4b/195ddbf5b9091f70eb86fe268c099e01/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-x86.exe +[aspnetcore-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/c4d490ef-b84c-4d72-917e-ca888708897b/890bb35f7eb345a41d417f6f3fb27a50/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-x86.zip +[dotnet-hosting-win.exe]: https://download.visualstudio.microsoft.com/download/pr/b671a565-b18e-4c5d-84f3-1dba30b2d5ec/ea9dae82779be5c3456f94b60d74b418/dotnet-hosting-9.0.0-preview.1.23112.2-win.exe + +[//]: # ( SDK 9.0.100-preview.1.23115.2) +[dotnet-sdk-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/1fb6d1b1-e976-4e94-9009-229ee313dfa5/5476a83dcda6d51617598cff9db793bd/dotnet-sdk-9.0.100-preview.1.23115.2-linux-arm.tar.gz +[dotnet-sdk-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/57c316ef-4b1d-4b1e-b180-f38302132d3d/b938e1b373897fadfb25ff4b55ca32e6/dotnet-sdk-9.0.100-preview.1.23115.2-linux-arm64.tar.gz +[dotnet-sdk-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/23b0480f-384f-4ba8-b047-140ff0d67806/a1a01f23f1a7fc8d996a1e2d99560273/dotnet-sdk-9.0.100-preview.1.23115.2-linux-musl-arm.tar.gz +[dotnet-sdk-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/b4fde77f-5016-40ef-be38-ecea34fe73b3/6f2f78d153c102f592aecbf364befba6/dotnet-sdk-9.0.100-preview.1.23115.2-linux-musl-arm64.tar.gz +[dotnet-sdk-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/60cae83e-cc73-4ce4-9d94-c828fad4d9e0/4add3672b15f491291764c6530eb1bb5/dotnet-sdk-9.0.100-preview.1.23115.2-linux-musl-x64.tar.gz +[dotnet-sdk-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e2578737-231b-493c-a6ee-f181496fe679/18038808d2621094ebe172ca011a7c22/dotnet-sdk-9.0.100-preview.1.23115.2-linux-x64.tar.gz +[dotnet-sdk-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/b54698c3-d371-492f-b9f1-998a60136156/3ff37050db93fd5fd5ab86befe42bb08/dotnet-sdk-9.0.100-preview.1.23115.2-osx-arm64.pkg +[dotnet-sdk-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/00476255-fac3-4e26-98a4-c487aa89945c/76550e8fb59f35fcb6b789d570b9ace5/dotnet-sdk-9.0.100-preview.1.23115.2-osx-arm64.tar.gz +[dotnet-sdk-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/993e8460-176f-4669-9337-b4725c355146/f903c2ff758fee42121da67772dfd0c5/dotnet-sdk-9.0.100-preview.1.23115.2-osx-x64.pkg +[dotnet-sdk-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0b01073d-3861-4fe0-abba-41e271c79725/12150bdbeeeb50e157b91f2adab90c80/dotnet-sdk-9.0.100-preview.1.23115.2-osx-x64.tar.gz +[dotnet-sdk-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/4f5a7e91-b186-40da-95a9-c01a8f8cd55f/1189b1bf14136d7075ef6a23c3a5b70d/dotnet-sdk-9.0.100-preview.1.23115.2-win-arm64.exe +[dotnet-sdk-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/86553a5e-ed5f-462b-819a-e850972413d2/41e5581320aac04fb55fa929603f1b2a/dotnet-sdk-9.0.100-preview.1.23115.2-win-arm64.zip +[dotnet-sdk-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/9b723333-0fa0-4601-bb83-aa842fda27d7/fd2b0e727ba2442a93a511aaa3817e67/dotnet-sdk-9.0.100-preview.1.23115.2-win-x64.exe +[dotnet-sdk-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/a1b7c03d-7c06-4d07-a99d-b7c919fc9b9a/0b57d52282f0e56c8701aaafd31cab90/dotnet-sdk-9.0.100-preview.1.23115.2-win-x64.zip +[dotnet-sdk-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/efef3a6c-b2b0-4c2e-82d0-ead02e4d6bb0/a4e88db099d462f65e08823d7c526ed3/dotnet-sdk-9.0.100-preview.1.23115.2-win-x86.exe +[dotnet-sdk-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/83c277bd-f1da-404e-8d7b-d3ecaeff3033/bd44769f850d158983a5d9215facc02d/dotnet-sdk-9.0.100-preview.1.23115.2-win-x86.zip diff --git a/release-notes/9.0/preview/preview1/9.0.0-preview.1.md b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md new file mode 100644 index 0000000000..aabeada82b --- /dev/null +++ b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md @@ -0,0 +1,166 @@ +# .NET 9 Preview 1 Binaries + +.NET 9 Preview 1 installers and binaries can be downloaded for the following product versions: + +- `.NET 9.0.0 Preview 1` +- `.NET SDK 9.0.100-preview.1.24101.2` + +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.1.24101.2 +``` + +## .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 [dotnet/core #xxxx](https://github.com/dotnet/core/issues/xxxx) for your questions and comments. + +[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/preview/9.0.0-preview.1.md + +[checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.1-sha.txt +[checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.1-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-1 +[aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-9-preview-1/ +[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-preview1+is%3Aclosed+label%3Atype-bug +[ef_features]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-enhancement + +[aspnet_bugs]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+label%3ADone+label%3Abug +[aspnet_features]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+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.1.24080.9) +[dotnet-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f59acd9f-cbed-4483-acde-2b42d1abac59/b6edd8e417a12e04849dded2c6143869/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm.tar.gz +[dotnet-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/7d911f96-acdc-4f5f-b283-cae6d6439bfd/f9e1c8d283ffd1d2e40346926a9c37bc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm64.tar.gz +[dotnet-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d4e427bc-0a0f-4bd1-ae1f-79dfcb59ca8e/2c2ea76fdbbe8eb67029013741abc7c8/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-arm.tar.gz +[dotnet-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d8daea8a-5a9d-4570-a860-cc9512946d66/bec3eb14bf7e22a3f99e21f6de8f5a7d/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-arm64.tar.gz +[dotnet-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/fe51f8fc-c30d-42ee-ae0b-e4866193c392/c8cecc468809fb235223f77dd19a0bfc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-x64.tar.gz +[dotnet-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/5bcb417b-0de3-461c-9ce2-a9ddd5df1aff/73e36aaa7c2e381724a2adac149eb376/dotnet-runtime-9.0.0-preview.1.24080.9-linux-x64.tar.gz +[dotnet-runtime-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/00b22eac-00df-4aaa-9d9c-cb709afc7727/30b1bd396e681d1e7a5e0a2d034243a7/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.pkg +[dotnet-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/079214b6-0ce6-4d6f-a0ac-9bd9072dad0f/14b558eb20224c345f78ea80f7029e11/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.tar.gz +[dotnet-runtime-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/5a33892b-8d4c-4a35-831d-537ae7361c96/381e7d9f93758fbe2ffbda88927fdda5/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.pkg +[dotnet-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0307fdd7-b398-4e90-a88b-574d853b769b/ab8938a35b03d8308a7a16331fa65cfa/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.tar.gz +[dotnet-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/57abc76c-46c8-4a76-b28d-108a097203dd/5796bd89648367c97adab3dbbc1ed1c2/dotnet-runtime-9.0.0-preview.1.24080.9-win-arm64.exe +[dotnet-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/6714615d-e422-4037-845a-c51a7cb7fd1c/f2efed74b142bcb681209cd5ca1f333b/dotnet-runtime-9.0.0-preview.1.24080.9-win-arm64.zip +[dotnet-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/a160565d-c481-4d36-b6df-e708b3273914/b31aaffa739731821684023da81c3b06/dotnet-runtime-9.0.0-preview.1.24080.9-win-x64.exe +[dotnet-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/4f93597e-2697-4e50-a232-aa4d7c025ee4/4f35240f9b922d5b77f5c426e52c6e70/dotnet-runtime-9.0.0-preview.1.24080.9-win-x64.zip +[dotnet-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/292f3bdc-8f10-43cc-9f54-a2740ea4f8e3/3aaa99d7befd139d2e5ac8c4b1fa6707/dotnet-runtime-9.0.0-preview.1.24080.9-win-x86.exe +[dotnet-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/ae7b1529-8508-4202-be55-911ff8373186/b657e9299262515b194ecd8e95948b4d/dotnet-runtime-9.0.0-preview.1.24080.9-win-x86.zip + +[//]: # ( WindowsDesktop 9.0.0-preview.1.24081.3) +[windowsdesktop-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/5bcc6b35-e7e7-48b5-8cf2-277a60fc03e1/d5c4319efbf8e734f9dd11a358c03bd4/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-arm64.exe +[windowsdesktop-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/dc0ae26f-121d-4f63-a066-2333861699b7/45bb105bf0b9756495fe8d217f20c397/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-arm64.zip +[windowsdesktop-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/0c804185-7f86-4167-8703-8365d4939d72/02935dd20c741d36acb2c4eb2f2d5a21/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x64.exe +[windowsdesktop-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/9a297cbf-b641-4026-bca8-c68293c4fa8f/05b5d48d0ab2dc0cea2271f85c027c87/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x64.zip +[windowsdesktop-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/e3264b5f-c04b-427b-bf87-f9a264f53b0d/9f564a10f3af50fda2ec7ef2365b10d5/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x86.exe +[windowsdesktop-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/f0788f54-28b1-4a6d-ae86-1ead236dda97/37a05b2928ca436d0424aeb3d5ce4e4f/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x86.zip + +[//]: # ( ASP 9.0.0-preview.1.24081.5) +[aspnetcore-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/27ce8ce5-a12e-47d5-b075-5c6034c86c40/6280dfd63195eeb410c4b70dff2d6ba9/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm.tar.gz +[aspnetcore-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/3f2586f3-89fd-44ad-aae2-4c241f72996f/f973c7140305733792dd25b466e37606/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm64.tar.gz +[aspnetcore-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e7783447-29c2-4866-bd77-fcc207fe2d73/a1d3af0e7af02e478e7f748011af1c48/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-arm.tar.gz +[aspnetcore-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/df69432f-27c5-450b-8afc-b7c9e35630d0/b5bc58a367875a214cf0c2c11ad174a9/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-arm64.tar.gz +[aspnetcore-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d3f3a6eb-ef34-474b-944e-bed7bdb040cc/bccb1d80864eaaf576c25444525f9224/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-x64.tar.gz +[aspnetcore-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/14b2b268-4d58-4f7b-9708-46c5a0a5b868/3cfbd27c7e2aabc0ca70f474709a4767/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-x64.tar.gz +[aspnetcore-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/a407f4d8-183b-45c9-8153-c889c10630b9/2388fbcc5171e20d05abeb301027df2e/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-arm64.tar.gz +[aspnetcore-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/2e9a9af2-f1dd-467a-85f3-430f5142bf0b/6ce0853ee69a127bb767270a737f6467/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-x64.tar.gz +[aspnetcore-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/f942b1be-4e32-43cd-914f-24bd19b7e583/262944dd0604ab13fc39d5387c59d53d/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-arm64.zip +[aspnetcore-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/427d2f8c-58f0-4ebb-b3c2-8960b88d03a2/354461a9a09d96678505e964f829df42/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x64.exe +[aspnetcore-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/188d9bb7-2cd9-48b0-ae5f-c1919ebb0750/c1c4b6c669863c4f6fb5bbe9b6498ca8/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x64.zip +[aspnetcore-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/cf9d5773-4262-4135-b8cd-10bdb1d64cf3/2999b27d44b816b58a966d74d43ca2f6/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x86.exe +[aspnetcore-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/d5423ff0-60fe-4e91-b083-5aefca88610a/962fb47ce2b483795e7eb33f08a4bc46/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x86.zip +[aspnetcore-runtime-composite-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/fbb4cdaa-f4de-4297-bce0-5af6e8a8148f/90c097d5618d4dd81d8d489abce1645b/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-arm.tar.gz +[aspnetcore-runtime-composite-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/42ca6325-0b0c-4ee6-96c4-ac46affd2c64/20f5fc2ee183de3450cd33e06e5c8bf2/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-arm64.tar.gz +[aspnetcore-runtime-composite-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/b5a23389-0099-4b0c-adde-6acbee4412b9/10a484a2160790fb695c8e2eb6d34d53/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-arm.tar.gz +[aspnetcore-runtime-composite-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/c165e81b-e915-4c10-9fd1-86e1a3eaabf6/184c4299dc0fcf3b18a8e18f989a3d6b/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-arm64.tar.gz +[aspnetcore-runtime-composite-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/bede20f1-0e70-4a08-a1d8-df9613e7ddf3/aa55cc5fa325b264eb1cbda8eb45d8b7/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-x64.tar.gz +[aspnetcore-runtime-composite-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f7492292-937e-4ed2-aac1-1e1aee31c19b/f345f6bc48f5c073b048e2946d504041/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-x64.tar.gz +[dotnet-hosting-win.exe]: https://download.visualstudio.microsoft.com/download/pr/6728a941-7b39-44af-b75c-91769681007d/0f062452057e1f17bcf2e1af7e2a5414/dotnet-hosting-9.0.0-preview.1.24081.5-win.exe + +[//]: # ( SDK 9.0.100-preview.1.24101.2) +[dotnet-sdk-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f5e9fc40-e56c-4276-bcf8-3ecf80f7c1a7/94900c87e4529a89ac71d164665088c7/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm.tar.gz +[dotnet-sdk-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz +[dotnet-sdk-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/4cf1722b-252e-4b66-a292-8aa97fdd0fec/7bc384770059a0348e4024d8b6489f3f/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm.tar.gz +[dotnet-sdk-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/9fba65ff-def6-44cf-9230-1973c6a150a4/230b5ce3ae290ce5b10ed748b4f16dfc/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm64.tar.gz +[dotnet-sdk-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/744e137c-6902-426e-a494-1ec7bc71a8eb/c5a6d2c3d3c4e57c10da28992e34617a/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-x64.tar.gz +[dotnet-sdk-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz +[dotnet-sdk-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/f3a5f6fd-0b74-407c-a3cf-52792d76415f/53c4911d66ce7a8757c9d10c2c4d6414/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.pkg +[dotnet-sdk-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz +[dotnet-sdk-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/5c78b512-56ef-49a1-b181-96ca60917c06/f6ad92dac6791efabedd862a495e7d4b/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.pkg +[dotnet-sdk-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz +[dotnet-sdk-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/224503be-904d-4735-a447-b180b5a90c88/c267d21bd55b3108a226b0b458f02ab7/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.exe +[dotnet-sdk-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/019706df-7545-4e5c-a8e0-1cd8ed308eca/eb7fe6847f4d9be5870ee0ea172d5025/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.zip +[dotnet-sdk-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/bb120bd7-6656-4ebf-9efc-87dbbbd2f344/ef7cb2cf73d9a740c2af0b4ca9c2266e/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.exe +[dotnet-sdk-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/4c55bc67-e478-4fdc-abe3-08b8dd64f4e4/9cf46c3018f477a93a8498850e6c122b/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.zip +[dotnet-sdk-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/351f70a4-7eda-44e7-9e3b-44ee92e2b678/92d69c8dc447e2870f95ec535c3edf83/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.exe +[dotnet-sdk-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/2a5790bb-b57d-4c34-bbf9-d93a589bc065/0456e1a4bd06579fccf6fb776dfa5dc6/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.zip diff --git a/release-notes/9.0/preview/preview1/README.md b/release-notes/9.0/preview/preview1/README.md new file mode 100644 index 0000000000..36650eca61 --- /dev/null +++ b/release-notes/9.0/preview/preview1/README.md @@ -0,0 +1,21 @@ +# .NET 9 Preview 1 - February 13, 2024 + +Welcome to .NET 9! We're happy to deliver the first preview of .NET 9 and share in-depth release notes that provide varied and impressive improvements for the first preview out of the gate. We also published [Our Vision for .NET 9](https://aka.ms/dotnet/9/vision), which describes some of the broad areas we intend to deliver on by the final November 2024 release. + +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). Instructions on getting started .NET 9 can be found on the [get started guide](../../get-started.md). + +You may be surprised to be reading about our release on GitHub Discussions. Check out [Welcome to .NET Release News on GitHub Discussions!](https://github.com/dotnet/core/discussions/9131) to learn more about how we're approaching documenting and sharing preview releases. + +## Release notes & Discussions + +Check out the release notes and discussions for the new features in this release. + +* .NET 9: [Binaries](9.0.0-preview.1.md) | [Discussions](https://aka.ms/dotnet/9/preview1) +* .NET MAUI: [Release Notes](dotnetmaui.md) | [Discussions](https://github.com/dotnet/maui/discussions/categories/announcements) +* ASP.NET Core: [Release Notes](aspnetcore.md) | [Discussions](https://github.com/dotnet/aspnetcore/discussions/categories/announcements) +* .NET Data and EF Core: [Release Notes](efcoreanddata.md) | [Discussions](https://github.com/dotnet/efcore/issues/) +* Libraries [Release Notes](libraries.md) | [Discussions](https://github.com/dotnet/runtime/discussions/categories/announcements) +* Runtime: [Release Notes](runtime.md) | [Discussions](https://github.com/dotnet/runtime/discussions/categories/announcements) +* SDK: [Release Notes](sdk.md) | [Discussions](https://github.com/dotnet/runtime/discussions/categories/announcements) + +Use the discussions links to engage with teams. diff --git a/release-notes/9.0/preview/preview1/aspnetcore.md b/release-notes/9.0/preview/preview1/aspnetcore.md new file mode 100644 index 0000000000..5023aace37 --- /dev/null +++ b/release-notes/9.0/preview/preview1/aspnetcore.md @@ -0,0 +1,138 @@ +# ASP.NET Core updates in .NET 9 Preview 1 + +Here's a summary of what's new in ASP.NET Core in this preview release: + +- Dictionary debugging improvements +- JSON polymorphic type support in SignalR Hubs +- General quality improvements and bug fixes + +ASP.NET Core updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/aspnetcore/discussions/categories/announcements) +* [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 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +## Dictionary debugging improvements + +The debugging display of dictionaries and other key-value collections has an improved layout. The key is displayed in the debugger's key column instead of being concatenated with the value. The following images show the old and new display of a dictionary in the debugger. + +Before: + +![Prior experience debugging dictionaries.](https://github.com/dotnet/release-notes-drafts/assets/1874516/fac8289b-9e76-4de0-99ce-c043870dd027) + +After: + +![New experience debugging dictionaries.](https://github.com/dotnet/release-notes-drafts/assets/1874516/52553a6d-532a-406d-bc13-91e25d1216b8) + +ASP.NET Core has many key-value collections. This improved debugging experience applies to: + +- HTTP headers +- Query strings +- Forms +- Cookies +- View data +- Route data +- Features + +## JSON polymorphic type support in SignalR Hubs + +Hub methods can now accept a base class instead of the derived class to enable polymorphic scenarios. The base type needs to be [annotated to allow polymorphism](https://learn.microsoft.com/dotnet/standard/serialization/system-text-json/polymorphism). + +```csharp +public class MyHub : Hub +{ + public void Method(JsonPerson person) + { + if (person is JsonPersonExtended) + { + } + else if (person is JsonPersonExtended2) + { + } + else + { + } + } +} + +[JsonPolymorphic] +[JsonDerivedType(typeof(JsonPersonExtended), nameof(JsonPersonExtended))] +[JsonDerivedType(typeof(JsonPersonExtended2), nameof(JsonPersonExtended2))] +private class JsonPerson +{ + public string Name { get; set; } + public Person Child { get; set; } + public Person Parent { get; set; } +} + +private class JsonPersonExtended : JsonPerson +{ + public int Age { get; set; } +} + +private class JsonPersonExtended2 : JsonPerson +{ + public string Location { get; set; } +} +``` + +## Community contributors + +Thank you contributors! ❤️ + +- [@abc516](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aabc516) +- [@afshinm](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aafshinm) +- [@aleksvujic](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aaleksvujic) +- [@alexbeeston](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aalexbeeston) +- [@alex-inftx](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aalex-inftx) +- [@aligoren](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aaligoren) +- [@alrz](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aalrz) +- [@bfriesen](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Abfriesen) +- [@brianrourkeboll](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Abrianrourkeboll) +- [@BurkusCat](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ABurkusCat) +- [@campersau](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Acampersau) +- [@charytech](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Acharytech) +- [@CollinAlpert](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ACollinAlpert) +- [@cremor](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Acremor) +- [@damirault](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Adamirault) +- [@DanielCordell](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ADanielCordell) +- [@davhdavh](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Adavhdavh) +- [@david-acker](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Adavid-acker) +- [@DavidKlempfner](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ADavidKlempfner) +- [@GeorgiPopovIT](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AGeorgiPopovIT) +- [@gfoidl](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Agfoidl) +- [@glen-84](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aglen-84) +- [@GreyFogSamurai](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AGreyFogSamurai) +- [@HavenDV](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AHavenDV) +- [@Issung](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AIssung) +- [@jirikanda](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Ajirikanda) +- [@joegoldman2](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Ajoegoldman2) +- [@Kahbazi](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AKahbazi) +- [@kaotoby](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Akaotoby) +- [@kirides](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Akirides) +- [@KonH](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AKonH) +- [@ladeak](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aladeak) +- [@lofcz](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Alofcz) +- [@MaceWindu](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AMaceWindu) +- [@mariusz96](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Amariusz96) +- [@naeemaei](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Anaeemaei) +- [@onurkanbakirci](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aonurkanbakirci) +- [@paulomorgado](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Apaulomorgado) +- [@pentp](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Apentp) +- [@rameel](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Arameel) +- [@RyanGaudion](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3ARyanGaudion) +- [@simon-curtis](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Asimon-curtis) +- [@tmds](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Atmds) +- [@vanillajonathan](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Avanillajonathan) +- [@vhatuncev](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Avhatuncev) +- [@viliml](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Aviliml) +- [@Vishwanatha-HD](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AVishwanatha-HD) +- [@WeihanLi](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AWeihanLi) +- [@Who-Code](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3AWho-Code) +- [@xaberue](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Axaberue) +- [@zcxsythenew](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Azcxsythenew) +- [@zorix](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A9.0-preview1+author%3Azorix) diff --git a/release-notes/9.0/preview/preview1/dotnetmaui.md b/release-notes/9.0/preview/preview1/dotnetmaui.md new file mode 100644 index 0000000000..9fbd126724 --- /dev/null +++ b/release-notes/9.0/preview/preview1/dotnetmaui.md @@ -0,0 +1,31 @@ +# .NET MAUI updates in .NET 9 Preview 1 + +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. + +.NET MAUI updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/maui/discussions/categories/announcements) +* [What's new in .NET MAUI in .NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) documentation. +* [GitHub Release](https://github.com/dotnet/maui/releases/tag/untagged-e764fa1780e2dd618900) + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +> **Known Issue:** building `net8.0-*` target frameworks from .NET 9 does not work in preview 1. + +## .NET for Android + +This release was focused on quality. + +- [GitHub Release](https://github.com/xamarin/xamarin-android/releases/) + +## .NET for iOS + +This release was focused on quality. + +- [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 [@jamesdlow](https://github.com/jamesdlow), [@WdeBruin](https://github.com/WdeBruin), [@artemvalieiev](https://github.com/artemvalieiev), [@Axemasta](https://github.com/Axemasta), [@tarasverq](https://github.com/tarasverq), [@simonrozsival](https://github.com/simonrozsival), [@JanKrivanek](https://github.com/JanKrivanek), [@symbiogenesis](https://github.com/symbiogenesis), [@Eden-Mor](https://github.com/Eden-Mor), [@MartyIX](https://github.com/MartyIX), [@albyrock87](https://github.com/albyrock87), [@Lehonti](https://github.com/Lehonti), [@eltociear](https://github.com/eltociear), and [@Youssef1313](https://github.com/Youssef1313). \ No newline at end of file diff --git a/release-notes/9.0/preview/preview1/efcoreanddata.md b/release-notes/9.0/preview/preview1/efcoreanddata.md new file mode 100644 index 0000000000..7e79b43579 --- /dev/null +++ b/release-notes/9.0/preview/preview1/efcoreanddata.md @@ -0,0 +1,58 @@ +# Entity Framework Core 9 Preview 1 + +The team has been working primarily on EF Core internals, so there are no new big features in EF Core 9 (EF9) Preview 1. However, this means we really need people like you to run your code on these new internals and report back what you find. We want to fix bugs in the new internals as soon as possible in order to have a strong GA release later in the year. + +That being said, there are also several smaller enhancements included in preview 1. One of these might be just the thing you have been waiting for, so read on! + +Entity Framework Core 9 Preview 1: +* [Discussion](https://github.com/dotnet/efcore/issues) +* [What's new in EF Core 9](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) documentation. +* [Documentation & Samples](https://github.com/dotnet/EntityFramework.Docs) + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +## Improved queries + +- Prune columns passed to OPENJSON's WITH clause + - EF9 removes unnecessary columns when calling `OPENJSON WITH`. + - See [_Prune columns from JSON_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#prune-columns-passed-to-openjsons-with-clause) in the What's New docs for full details including runnable samples. +- Translations involving GREATEST/LEAST + - Several new translations have been introduced that use the `GREATEST` and `LEAST` SQL functions. + - This includes translations of `Math.Min` and `Math.Max` in non-aggregate queries, as well as directly exposing the `GREATEST` and `LEAST` SQL functions in relational providers. + - See [_GREATEST/LEAST translations_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#prune-columns-passed-to-openjsons-with-clause) in the What's New docs for full details including runnable samples. +- Force or prevent query parameterization + - Except in some special cases, EF Core parameterizes variables used in a LINQ query, but includes constants in the generated SQL. EF9 allows constants to be translated to parameters and variables to be translated to constants on a case to case basis. + - See [_Force or prevent query parameterization_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#force-or-prevent-query-parameterization) in the What's New docs for full details including runnable samples. + +## ExecuteUpdate + +- Allow passing complex type instances to ExecuteUpdate + - EF9 supports directly passing complex type instances to `ExecuteUpdate` as sugar for updating all member values. + - See [_ExecuteUpdate for complex types_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#allow-passing-complex-type-instances-to-executeupdate) in the What's New docs for full details including runnable samples. + +## Temporal tables + +- Small migrations for temporal tables + - The migration created when changing an existing table into a temporal table has been reduced in size for EF9. + - See [_Improved temporal table migrations_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#improved-temporal-table-migrations) in the What's New docs for full details including runnable samples. + +## Model building + +- Make existing model building conventions more extensible + - In EF9, we have made it easier to extend some of the existing conventions, such as those for property and key discovery. + - See [_Extensible model building conventions_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#make-existing-model-building-conventions-more-extensible) in the What's New docs for full details including runnable samples. +- ApplyConfigurationsFromAssembly calls non-public constructors + - In EF9, we have both improved the error messages generated when this fails, and also enabled instantiation by non-public constructor. + - See [_ApplyConfigurationsFromAssembly calls non-public constructors_](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew#update-applyconfigurationsfromassembly-to-call-non-public-constructors) in the What's New docs for full details including runnable samples. + +## Everything else in Preview 1 + + Preview 1 contains: + +- [30 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-enhancement+) +- [51 bug fixes in EF9 Preview 1](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-bug) + - [8 bug fixes also shipped in 8.0.1](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.1+is%3Aclosed) + - [25 bug fixes also shipped in 8.0.2](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A8.0.2+is%3Aclosed+) +- [5 cleanup issues](https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+-label%3Atype-enhancement+-label%3Atype-bug) \ No newline at end of file diff --git a/release-notes/9.0/preview/preview1/libraries.md b/release-notes/9.0/preview/preview1/libraries.md new file mode 100644 index 0000000000..00f2827d24 --- /dev/null +++ b/release-notes/9.0/preview/preview1/libraries.md @@ -0,0 +1,217 @@ +# Libraries updates in .NET 9 Preview 1 + +.NET 9 Preview 1 includes several new library features. We focused on the following areas: + +- System.Collections +- System.Linq +- System.Reflection +- System.Security.Cryptography +- System.Text.Json + +Libraries updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/runtime/discussions/categories/announcements) +* [What's new in .NET Libraries in .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation. + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +## System.Collections: `PriorityQueue.Remove` + +[`PriorityQueue` collection](https://learn.microsoft.com/dotnet/api/system.collections.generic.priorityqueue-2) provides a simple and fast array heap implementation. One issue however with array heaps in general is that they [don't support priority updates](https://github.com/dotnet/runtime/issues/44871), making them prohibitive for use in algorithms such as variations of [Dijkstra's algorithm](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Using_a_priority_queue). + +While it wouldn't be possible to implement efficient $\mathcal O(\log n)$ priority updates in the existing collection, the new `Remove` method makes it possible to _emulate_ priority updates (albeit at $\mathcal O(n)$ time): + +```C# +public static void UpdatePriority(this PriorityQueue queue, TElement element, TPriority priority) +{ + queue.Remove(element, out _); // Scan the heap for entries matching the current element + queue.Enqueue(element, priority); // Now re-insert it with the new priority. +} +``` + +This improvement unblocks users looking to implement graph algorithms in contexts where asymptotic performance isn't a blocker (e.g. education or prototyping). For example, here's a [toy implementation of Dijkstra's algorithm](https://github.com/dotnet/runtime/blob/16cb41496d595e2568574cfe11c763d5e05136c9/src/libraries/System.Collections/tests/Generic/PriorityQueue/PriorityQueue.Tests.Dijkstra.cs#L46-L76) using the new API. + +## System.ComponentModel: TypeDescriptor is now thread-safe +Long-standing threading issues in TypeDescriptor have been addressed, so any existing work-arounds can be removed. Workarounds included pre-populating internal caches such as by calling `TypeDescriptor.GetProvider(type)` for every type that has a `TypeProviderAttribute`, and by wrapping the access to the affected APIs with a `lock` statement. + +For more background, see the issues [TypeDescriptor.GetProperties(object instance) is not thread-safe](https://github.com/dotnet/runtime/issues/92394) and [Concurrency issue in TypeDescriptor.GetConverter(type)](https://github.com/dotnet/runtime/issues/30024). + +The threading issues also exist in .NET Framework. If you are affected by this issue in .NET Framework, please add feedback to this blog or the issues above so we can determine the priority of porting the fix to .NET Framework. + +## System.Linq: `CountBy`, `AggregateBy` and `Index` methods + +We've added new Linq methods that make it possible to aggregate state by key, without needing to allocate intermediate groupings via `GroupBy`. You can use `CountBy` to quickly calculate the frequency for each key: + +```C# +string sourceText = """ + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Sed non risus. Suspendisse lectus tortor, dignissim sit amet, + adipiscing nec, ultricies sed, dolor. Cras elementum ultrices amet diam. + """; + +// Find the most frequent word in a piece of text +KeyValuePair mostFrequentWord = sourceText + .Split(new char[] { ' ', '.', ',', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) + .Select(word => word.ToLowerInvariant()) + .CountBy(word => word) + .MaxBy(pair => pair.Value); + +Console.WriteLine(mostFrequentWord.Key); // amet +``` + +More general-purpose workflows can be implemented using the new `AggregateBy` method, here's how we can aggregate scores by a given key: + +```C# +(string id, int score)[] data = +[ + ("0", 42), + ("1", 5), + ("2", 4), + ("1", 10), + ("0", 25), +]; + +data.AggregateBy(seed: 0, (totalScore, curr) => totalScore + curr.score, keySelector: entry => entry.id); +//(0, 67) +//(1, 15) +//(2, 4) +``` + +The new `Index` method makes it possible to quickly extract the implicit index of an enumerable. The code: + +```C# +IEnumerable lines = File.ReadAllLines("file.txt"); +foreach ((string line, int index) in lines.Select((line, index) => (line, index)) +{ + Console.WriteLine($"Line number: {index + 1}, Line: {line}"); +} +``` + +Now becomes + +```C# +foreach ((string line, int index) in lines.Index()) +{ + Console.WriteLine($"Line number: {index + 1}, Line: {line}"); +} +``` + +## System.Reflection.Emit: Support equivalent of AssemblyBuilder.Save + +[Saving an assembly](https://github.com/dotnet/runtime/issues/15704) with Reflection.Emit has been requested since the first release of .NET Core and it's been the most upvoted issue in the Reflection area. Many customers report it as a blocker for porting their project from .NET Framework. Without saving the assembly, it was very difficult to debug in-memory assemblies. Saving the assembly to a file allows the assembly to be verified with tools such as ILVerify, or decompiled and manually examined with tools such as ILSpy. Furthermore, the assembly can be shared or loaded directly which can be used to decrease application startup time. + +For creating a new persisted `AssemblyBuilder` instance you should use the new `AssemblyBuilder.DefinePersistedAssembly` API: + +```cs +AssemblyBuilder ab = AssemblyBuilder.DefinePersistedAssembly(new AssemblyName("MyAssembly"), typeof(object).Assembly); +``` + +The `Assembly` passed to the method used for resolving base runtime types, notice that `AssemblyBuilderAccess` option is not passed, the new persisted `AssemblyBuilder` implementation is only for saving, in order to run the assembly user first need to save it into a memory stream or a file, then load it back. + + +The following example demonstrates how to create and save assemblies: + + +```cs +public void CreateAndSaveAssembly(string assemblyPath) +{ + AssemblyBuilder ab = AssemblyBuilder.DefinePersistedAssembly(new AssemblyName("MyAssembly"), typeof(object).Assembly); + TypeBuilder tb = ab.DefineDynamicModule("MyModule").DefineType("MyType", TypeAttributes.Public | TypeAttributes.Class); + + MethodBuilder mb = tb.DefineMethod("SumMethod", MethodAttributes.Public | MethodAttributes.Static, + typeof(int), [typeof(int), typeof(int)]); + ILGenerator il = mb.GetILGenerator(); + il.Emit(OpCodes.Ldarg_0); + il.Emit(OpCodes.Ldarg_1); + il.Emit(OpCodes.Add); + il.Emit(OpCodes.Ret); + + tb.CreateType(); + ab.Save(assemblyPath); // or could save to a Stream +} +``` + +The following example demonstrates how to run the saved assembly: + + +```cs +public void UseAssembly(string assemblyPath) +{ + Assembly assembly = Assembly.LoadFrom(assemblyPath); + Type type = assembly.GetType("MyType"); + MethodInfo method = type.GetMethod("SumMethod"); + Console.WriteLine(method.Invoke(null, [5, 10])); +} +``` + +Future Plans: A few missing API implementations and bunch of bug fixes [will be added in preview 2](https://github.com/dotnet/runtime/pull/97350). Further [Entry point support](https://github.com/dotnet/runtime/issues/97015) will be added soon. + +## System.Security.Cryptography: `CryptographicOperations.HashData` + +.NET includes several static [one-shot implementations](https://learn.microsoft.com/dotnet/standard/security/cryptography-model#one-shots) of hash functions, and related functions. These APIs include [`SHA256.HashData`](https://learn.microsoft.com/dotnet/api/system.security.cryptography.sha256.hashdata) and [`HMACSHA256.HashData`](https://learn.microsoft.com/dotnet/api/system.security.cryptography.hmacsha256.hashdata). One-shots are preferable to use because they can provide the best possible performance and reduce or eliminate allocations. + +If a developer wants to provide an API that supports hashing where the caller defines which hash algorithm to use, it's typically done by accepting a `HashAlgorithmName` argument. However, using that pattern with one-shot APIs would require switching over every possible `HashAlgorithmName` and then using the appropriate method. To solve that problem, .NET 9 introduces the `CryptographicOperations.HashData` API. This API lets you produce a hash or HMAC over an input as a one-shot where the algorithm used is determined by a `HashAlgorithmName`. + +The `CryptographicOperations.HashData` API can be used to produce a hash or HMAC over an input as a one-shot where the algorithm used is determined by a `HashAlgorithmName`. + +```C# +using System.Security.Cryptography; + +static void HashAndProcessData(HashAlgorithmName hashAlgorithmName, byte[] data) { + byte[] hash = CryptographicOperations.HashData(hashAlgorithmName, data); + ProcessHash(hash); +} +``` + +## System.Security.Cryptography: KMAC algorithm + +.NET 9 provides the KMAC algorithm as specified by [NIST SP-800-185](https://csrc.nist.gov/pubs/sp/800/185/final). KECCAK Message Authentication Code (KMAC) is a pseudorandom function and keyed hash function based on KECCAK. + +The following new classes use the KMAC algorithm. Use instances to accumulate data to produce a MAC, or use the static `HashData` method for a [one-shot](https://learn.microsoft.com/dotnet/standard/security/cryptography-model#one-shots) over a single input. + +- `Kmac128` +- `Kmac256` +- `KmacXof128` +- `KmacXof256` + +KMAC is available on Linux with OpenSSL 3.0 or later, and on Windows 11 Build 26016 or later. You can use the static `IsSupported` property to determine if the platform supports the desired algorithm. + +```C# +using System.Security.Cryptography; + +if (Kmac128.IsSupported) { + byte[] key = GetKmacKey(); + byte[] input = GetInputToMac(); + byte[] mac = Kmac128.HashData(key, input, outputLength: 32); +} +else { + // Handle scenario where KMAC is not available. +} +``` + +## System.Text.Json: Customizing indent character and indent size + +It is now possible to customize the indentation character and size of written JSON: + +```C# +var options = new JsonSerializerOptions +{ + WriteIndented = true, + IndentCharacter = '\t', + IndentSize = 2, +}; + +JsonSerializer.Serialize(new { Value = 1 }, options); +//{ +// "Value": 1 +//} +``` + +## System.Text.Json: `JsonSerializerOptions.Web` + +`JsonSerializerOptions` now exposes a static property configured to use `JsonSerializerDefaults.Web`: + +```C# +JsonSerializer.Serialize(new { SomeValue = 42 }, JsonSerializerOptions.Web); // {"someValue":42} defaults to camelCase naming policy +``` diff --git a/release-notes/9.0/preview/preview1/runtime.md b/release-notes/9.0/preview/preview1/runtime.md new file mode 100644 index 0000000000..0c0a57884a --- /dev/null +++ b/release-notes/9.0/preview/preview1/runtime.md @@ -0,0 +1,85 @@ +# Runtime updates in .NET 9 Preview 1 + +.NET 9 Preview 1 includes several new runtime features. We focused on the following areas: + +- Native AOT +- JIT + +Runtime updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/runtime/discussions/categories/announcements) +* [What's new in the .NET Runtime .NET 9](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation. + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +## Native AOT: Object Writer + +Object writer is a component we use to write debug info into symbols files for native AOT. For .NET 7 and 8, we us an LLVM-based library called objwriter for this purpose. In Preview 1, this functionality has been replaced by a new C# implementation, implemented by [@filipnavara](https://github.com/filipnavara). The C# implementation enables us to remove a dependency from the native AOT toolchain. + +This change doesn't significantly affect the output (the actual executable code is completely unaffected), but should be a slightly faster and more lightweight implementation. The output debugging info looks to be at least as good as the old debug info. The performance also looks at least as good, and there is opportunity to improve it more. + +We want to hear about any issues that people run into with the new object writer. Please share those, however small. + +While we expect the results to be as good or better than the old object writer, we will continue to ship the old writer as a fallback until (and including) Preview 4 while we test it in the real world. To use the old object writer instead, set the environment variable `DOTNET_USE_LLVM_OBJWRITER=1`. + +## JIT: Loop Optimizations + +RyuJIT already supports multiple powerful loop optimizations, and we plan to expand these capabilities for .NET 9. For Preview 1, we've focused on improving the applicability of existing optimizations by refactoring how loops are represented in RyuJIT. This new graph-based representation is simpler and more effective than the old lexical representation, enabling RyuJIT to recognize -- and thus optimize -- more loops. + +Here's a quick breakdown of the improvements: + +* **Loop hoisting** -- finds expressions that don't change in value as the containing loop iterates, and moves (or "hoists") the expressions to above the loop so they evaluate at most once. In our test collections, we saw up to 35.8% more hoisting performed with the new loop representation. +* **Loop cloning** -- determines if a conditional check (like a bounds check on an array) inside a loop can be safely eliminated for some of its iterations, and creates a "fast" copy of the loop without the check. At runtime, execution switches between the normal and fast copy of the loop depending on if the check is needed. With the new loop representation, we saw up to 7.3% more loop cloning. +* **Loop alignment** -- improves instruction cache performance by adjusting the offset of a loop to begin at a cache line. During execution, modern CPUs fetch instructions from memory in multi-byte chunks, and place them in a small, high-speed cache. If a loop crosses cache lines, the CPU might have to evict and re-cache the loop's instructions with every iteration, causing unnecessary stalling; for hot loops, these performance penalties quickly add up. Aligning a loop to the beginning of a cache line may significantly improve the instruction cache's hit rate. With the new loop representation, we saw about 5% more loops aligned across our test collections. + +This is just a snippet of the improvements RyuJIT's new loop representation brings. To take a closer look at the loop optimization work planned for .NET 9, check out [dotnet/runtime #93144](https://github.com/dotnet/runtime/issues/93144). + +## JIT: ARM64 SVE/SVE2 Support + +We are adding support for the Scalable Vector Extension (SVE) instruction set among many [ARM64-specific improvements](https://github.com/dotnet/runtime/issues/94464). On SVE-enabled hardware, these instructions enable flexible vectorization of high-performance workloads. Much of this flexibility comes from the fact that vector registers can be used with a variety of widths, ranging from 128 bits to 2048 bits. According to Arm Holdings, SVE was designed to accelerate workloads in relatively few domains, like machine learning and high-performance computing; [SVE2 extends the instruction set's applicability](https://developer.arm.com/documentation/102340/0100/Introducing-SVE2) to domains like computer vision, multimedia, and general-purpose software. + +Supporting SVE/SVE2 in .NET requires work across the stack, starting in RyuJIT. We now support emitting many instruction encodings. You can track our progress in real time via [dotnet/runtime #94549](https://github.com/dotnet/runtime/issues/94549), or check out some of the [API proposals](https://github.com/dotnet/runtime/issues/93095#issuecomment-1778932195) that enable the SVE/SVE2 features we are considering for .NET 9. + + +## JIT: Register Allocator Improvements + +Startup performance is a major focus for .NET 9, and profiling reveals RyuJIT spends a nontrivial amount of time in its register allocation phase. Effective register allocation is crucial for generating performant code, and RyuJIT leverages various heuristics to do so. When generating unoptimized code, we assume hot methods will eventually be recompiled with optimizations via tiered compilation, or optimized code won't be needed at all (such as when compiling debug builds); in the former case, it is especially important that RyuJIT prioritizes quick compilation over code quality to improve startup time. For Preview 1, RyuJIT now uses a faster, simpler approach to register allocation when compiling unoptimized code. In our testing, this change improves throughput by over 10% in some cases. Check out the [dotnet/runtime #96386](https://github.com/dotnet/runtime/pull/96386) to see the dramatic throughput improvements this brings. + +## Community Contributions + +Thanks to everyone for their contributions, as issues, PRs, and other types of engagement. + +Notable contributions: + +- [@a74nh](https://github.com/a74nh), [@snickrolls-arm](https://github.com/snickrolls-arm), and [@SwapnilGaikwad](https://github.com/SwapnilGaikwad) for their ARM64 contributions to RyuJIT! +- [@MichalPetryka](https://github.com/MichalPetryka) for his contributions to RyuJIT and related functionality. + +## Community Spotlight (Michał Petryka) + +The `dotnet/runtime` repo community benefits from the work and passions of many developers. We'd like to recognize [Michał Petryka](https://github.com/MichalPetryka) for [his efforts](https://github.com/dotnet/runtime/pulls?q=author%3AMichalPetryka) on the runtime and library codebase. + +In his own words: + + +Hello everybody, my name is Michał and I am from Warsaw, Poland. + +My first experience with C# (and real programming too) was back in 2016 when I’ve stumbled upon a game development live-stream while browsing the internet out of boredom. Since then I’ve gone a long way with my skills, first using them with Unity and then moving onto library development with .NET Core 3.1 and later versions. + +While I was doing it as a hobby before, now I am starting to do so professionally as I’ve recently finished school. + +I’ve loved working in C# more than with any other language as it managed to be an amazing middle ground between languages like JavaScript or Python - which made me feel like they were hiding too much from me and ones like C or C++ - which on the other hand forced me to constantly worry about things like memory management and others. + +I’ve always been interested in performance optimizations, which have also been the center of my contributions to .NET. At first, I’ve only commented on issues that affected me but after joining the DotNetEvolution and the C# Community Discord servers and seeing other contributors - both from the community and Microsoft - discuss their changes, I’ve started opening Pull Requests myself. + +Thanks to the mentorship I’ve received from others, I’ve been able to have almost 40 PR of mine that targeted the dotnet/runtime repository be merged, all targeting various areas ranging from the C# runtime libraries to the C++ RyuJIT codebase (which is responsible for compiling C# to native code). + +While working on such parts of .NET might seem scary at first, since a mistake done there could affect every single app there is, the extensive testing done on every contribution and the thorough reviews made by the code maintainers helped me ensure that my ideas could cause no issues for others. + +As such, I’d like to invite everybody to join various .NET and C# communities - both the Discord servers mentioned before and other platforms - and to start contributing to .NET yourself, either via discussing your ideas with existing contributors, filing issues whenever you encounter any or making PRs when you think you have an idea how to fix an existing issue. Don’t be afraid of doing so, you’ll surely have others help you, just as they have helped me and anything you learn by doing so can then be shared with others that also need help! + + +These are the links to the Discord servers that he mentions: + +- [C# Discord](https://discord.gg/csharp) +- [DotNetEvolution](https://aka.ms/dotnet-discord) diff --git a/release-notes/9.0/preview/preview1/sdk.md b/release-notes/9.0/preview/preview1/sdk.md new file mode 100644 index 0000000000..4b883ddf8d --- /dev/null +++ b/release-notes/9.0/preview/preview1/sdk.md @@ -0,0 +1,45 @@ +# SDK updates in .NET 9 Preview 1 + +.NET 9 Preview 1 includes several new SDK features. + +SDK updates in .NET 9 Preview 1: +* [Discussion](https://github.com/dotnet/sdk/discussions/categories/announcements) +* [What's new in the .NET SDK in .NET 9](https://review.learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation. + +.NET 9 Preview 1: +* [Discussion](https://aka.ms/dotnet/9/preview1) +* [Release notes](README.md) + +# Terminal Logger enabled by default + +The default experience for all `dotnet` CLI commands that use MSBuild is now Terminal Logger - the enhanced logging experience that we released in .NET 8. This new output uses the capabilities of modern terminals to provide functionality like clickable links, duration timers for MSBuild tasks, and color coding of warning and error messages in a more condensed and usable output than the existing MSBuild console logger. You can read more about the new logger in the [original release announcement](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8-preview-4/). + +The new logger should auto-detect if it can be used, but users can always manually control when Terminal Logger is used. Terminal Logger can be disabled for a specific command by using the `--tl:off` option, or on a more broad scale by setting the `MSBUILDTERMINALLOGGER` environment variable to `off`. + +The set of commands that will use Terminal Logger by default is + +* build +* clean +* msbuild +* pack +* publish +* restore +* test + +# Automatic tool upgrade and downgrade on install + +`dotnet tool install` will now automatically update the tool to the latest version if a newer version is available. Previously, `dotnet tool update` was required to update an installed tool. + +For example: + +```bash +$ dotnet tool install PowerShell -g --version 7.4.0 +$ dotnet tool install PowerShell -g +``` + +The latest version is now installed, 7.4.1 at the time of writing. + + +`dotnet tool install --allow-downgrade` will now allow you to install an older version of a tool already installed + +For more detail, see [dotnet/sdk #37311](https://github.com/dotnet/sdk/pull/37311) diff --git a/release-notes/9.0/releases.json b/release-notes/9.0/releases.json new file mode 100644 index 0000000000..6cf7cd6d06 --- /dev/null +++ b/release-notes/9.0/releases.json @@ -0,0 +1,518 @@ +{ + "channel-version": "9.0", + "latest-release": "9.0.0-preview.1", + "latest-release-date": "2024-02-13", + "latest-runtime": "9.0.0-preview.1.24080.9", + "latest-sdk": "9.0.100-preview.1.24101.2", + "support-phase": "preview", + "release-type": "sts", + "lifecycle-policy": "https://aka.ms/dotnetcoresupport", + "releases": [ + { + "release-date": "2024-02-13", + "release-version": "9.0.0-preview.1", + "security": false, + "cve-list": [], + "release-notes": "https://github.com/dotnet/core/blob/main/release-notes/9.0/preview/9.0.0-preview.1.md", + "runtime": { + "version": "9.0.0-preview.1.24080.9", + "version-display": "9.0.0-preview.1", + "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/f59acd9f-cbed-4483-acde-2b42d1abac59/b6edd8e417a12e04849dded2c6143869/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm.tar.gz", + "hash": "8f5e104562dd8ecbe87433896ba7bdd48400f28f41d0ffebe39d160adb6f0f600dcd327acd653d6c8a6dd13f3b375784290f17fd129e2f20bf307ccdbc4ba285" + }, + { + "name": "dotnet-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/7d911f96-acdc-4f5f-b283-cae6d6439bfd/f9e1c8d283ffd1d2e40346926a9c37bc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm64.tar.gz", + "hash": "265b7bf094730be765bdaadec3215c1a7c51bff6fb18bb51cff383473e32d1ba821b6d046e0f7fa864400dc5cb68e35943057f5b6ae6e8c411375fc15fdbaf3c" + }, + { + "name": "dotnet-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/d4e427bc-0a0f-4bd1-ae1f-79dfcb59ca8e/2c2ea76fdbbe8eb67029013741abc7c8/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-arm.tar.gz", + "hash": "7e8d46ae5668cc13011b9b579f71f27fa5c5feb93be2f6ee3541e75a163bb9f82d5e7b41cd5290e964d1ce7644ffdb9832d1570d7d795821cfd8c12f029e5d74" + }, + { + "name": "dotnet-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/d8daea8a-5a9d-4570-a860-cc9512946d66/bec3eb14bf7e22a3f99e21f6de8f5a7d/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-arm64.tar.gz", + "hash": "9e5a8dac01bc070758fb07788ec693a2b1c98be2d8aa1036d70e778c024df93d5a9299a4198514b7a8712143de47af6ce830d059350ba8686c760c6a37a8811d" + }, + { + "name": "dotnet-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/fe51f8fc-c30d-42ee-ae0b-e4866193c392/c8cecc468809fb235223f77dd19a0bfc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-musl-x64.tar.gz", + "hash": "f6a42522f3bbf59e58e28f3b5ce0bdd2b81e5f0aa9634ea4be7221145853925c221bdf04988e9e7364efd578c665f5136af55edc2eb9e2b276877ccd92235d80" + }, + { + "name": "dotnet-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5bcb417b-0de3-461c-9ce2-a9ddd5df1aff/73e36aaa7c2e381724a2adac149eb376/dotnet-runtime-9.0.0-preview.1.24080.9-linux-x64.tar.gz", + "hash": "68f0b89227c8e0b3239477409708c1b0c5cc7d80afd6661dc2150946c66e2130cf560c2471609f0fd063f01ca1d8e72f74beec45ecb519cf58f1cdc434615054" + }, + { + "name": "dotnet-runtime-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/00b22eac-00df-4aaa-9d9c-cb709afc7727/30b1bd396e681d1e7a5e0a2d034243a7/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.pkg", + "hash": "011963caf28e5fdd3a92b11732dffddf532f6c97ac5525682c32fc8ed3cb542f82aafdaa4020eef673f1b466533e2fdb133dab9334cff51840f45601c27a1a77" + }, + { + "name": "dotnet-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/079214b6-0ce6-4d6f-a0ac-9bd9072dad0f/14b558eb20224c345f78ea80f7029e11/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.tar.gz", + "hash": "63bf6a57f61c4dcf4e0cdcedb8ff6c76cb702a95d4e0033f17b4cd2a3e800e73ab16c401fb098416404ea5716c725c175f9422250b2a8816c08eed2702cd38e5" + }, + { + "name": "dotnet-runtime-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5a33892b-8d4c-4a35-831d-537ae7361c96/381e7d9f93758fbe2ffbda88927fdda5/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.pkg", + "hash": "d4cc85c39b4c287471784a61410458bc2078f44cf07146ea24ae11a8e96944297133802972de80623ac7aff10e57289628e1cd5cc9a64ac2fa3effec2b369418" + }, + { + "name": "dotnet-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0307fdd7-b398-4e90-a88b-574d853b769b/ab8938a35b03d8308a7a16331fa65cfa/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.tar.gz", + "hash": "f644ce6ee158bd86a4aba21bdd955a3aebb0367b5af618b6e77dc85922bc790b9c33b572606a15f566b2729a90923f66a933159124e803494105a695c890b775" + }, + { + "name": "dotnet-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/57abc76c-46c8-4a76-b28d-108a097203dd/5796bd89648367c97adab3dbbc1ed1c2/dotnet-runtime-9.0.0-preview.1.24080.9-win-arm64.exe", + "hash": "6027f09e7bd4612fe9cd1ac2550d0663cb80d63cec1a41cbd4a9f502d14c77ed83f83e3e47b87da28ce0820e894a0539624939d09e9363d52f2218696dc685e5" + }, + { + "name": "dotnet-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/6714615d-e422-4037-845a-c51a7cb7fd1c/f2efed74b142bcb681209cd5ca1f333b/dotnet-runtime-9.0.0-preview.1.24080.9-win-arm64.zip", + "hash": "3a800156e1680f46a0cdeeb60b780ee56e3150c52f1c6e9b440eb30529f2bc36dd928c51afd495396f8f4a7c1998e52168fedd2a1205ca0f7ccda2d880d12a4d" + }, + { + "name": "dotnet-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a160565d-c481-4d36-b6df-e708b3273914/b31aaffa739731821684023da81c3b06/dotnet-runtime-9.0.0-preview.1.24080.9-win-x64.exe", + "hash": "a535447c840aa27e21b69de7172f225ae5e3bea3ed632b81372a4cd20919a2ca4c6ae7c3963648bdb98d458fb204c5c5af3e85e0b44c8b5b803c1b3e4d8e791e" + }, + { + "name": "dotnet-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4f93597e-2697-4e50-a232-aa4d7c025ee4/4f35240f9b922d5b77f5c426e52c6e70/dotnet-runtime-9.0.0-preview.1.24080.9-win-x64.zip", + "hash": "a417238c10646dac5ff47663b34d05ed51e96e224aa1f29dc2de03a96c273d72dbd3c890a36b728fc01d0a3d6ae50804ade78c9f29310cdab49dcecf8e0e6ad8" + }, + { + "name": "dotnet-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/292f3bdc-8f10-43cc-9f54-a2740ea4f8e3/3aaa99d7befd139d2e5ac8c4b1fa6707/dotnet-runtime-9.0.0-preview.1.24080.9-win-x86.exe", + "hash": "70f677e2171a2773a0b0dafd0deffce9bdbf97692e34d2032163ea21645394becb71afdeda332edd0f558dc7e7080ed4e4a695f2ee32aa3866e8d7b81ef919a2" + }, + { + "name": "dotnet-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/ae7b1529-8508-4202-be55-911ff8373186/b657e9299262515b194ecd8e95948b4d/dotnet-runtime-9.0.0-preview.1.24080.9-win-x86.zip", + "hash": "be777abcd6300a3628ea3a154d0c62fae0c4142f3a5e9c4eda5d315d4716014dd42cddc9cac25c2fccddb106bade516f30805584e07c086f2d3fc9a171135dfb" + } + ] + }, + "sdk": { + "version": "9.0.100-preview.1.24101.2", + "version-display": "9.0.100-preview.1", + "runtime-version": "9.0.0-preview.1.24080.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/f5e9fc40-e56c-4276-bcf8-3ecf80f7c1a7/94900c87e4529a89ac71d164665088c7/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm.tar.gz", + "hash": "fa14b4545688097f490b9730a9063a3f7e7b779fd57a4bee43e61ef6f61c6aa5ba33ae5e1c8e0bc13dd060709d3eebbd04b044e06a9a70eecc73243db4107086" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz", + "hash": "b7c29e4e4baf2d2ba7b29fc5a080df708c5a915e6fb1ce2ff93ffc8f18e7725fae5d569ab1349ef4b067d05d00886a17c8d1a95e211602db1ee5da820b5edefd" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/4cf1722b-252e-4b66-a292-8aa97fdd0fec/7bc384770059a0348e4024d8b6489f3f/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm.tar.gz", + "hash": "821f7e1387a50b27c9fcad1e1955cc6aeb4012a0d1cef7273f882409ca18a42d97fe3fcad18eb141e8dd91afc16fa698a720763e4be6d7054af9c4e9104b43fd" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9fba65ff-def6-44cf-9230-1973c6a150a4/230b5ce3ae290ce5b10ed748b4f16dfc/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm64.tar.gz", + "hash": "93a0126c76bcd054a7119fb5e51b64980b130f55850d006d77ed4dd3a5f9ec79bfe49c0160c2c4dd58a01226c7264081f36b594e4b2d5c8d18a400ab57b86460" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/744e137c-6902-426e-a494-1ec7bc71a8eb/c5a6d2c3d3c4e57c10da28992e34617a/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-x64.tar.gz", + "hash": "7b44faba92fcc228477dce2ecd3311f0d6b68c30f082ff020472b07fc2615aa0e591da9185667a172a6f708192c6610e6c20594f79cee8e1a046515ffbb8e26b" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz", + "hash": "e176126d9a12075d91a0ad2b4dd50021a564258742d86560bd216ac36482c763087bd8affc68fe9a8d3c46f61f864bc2c7c2e455739d21614516c4f73fd281fd" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f3a5f6fd-0b74-407c-a3cf-52792d76415f/53c4911d66ce7a8757c9d10c2c4d6414/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.pkg", + "hash": "5375987c0a02eb33d820802ec9c76acb14ccecf1a35df1f894bf7e362e1400a8b48dad628267b65d8bda29850f1a70ff4cc0960cd57cd61dc7f155e155bc9de6" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz", + "hash": "901835cfc277c626d38c7a2bc1a6704115d240812631cd32f4b51833b41ddcd3a4a169a1bbda42a9446eb33b2337f6a8c6410bc3d1bae557c8898d427e2fc8c1" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5c78b512-56ef-49a1-b181-96ca60917c06/f6ad92dac6791efabedd862a495e7d4b/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.pkg", + "hash": "8254d65d65ef1bc038255e651ad962bc15249b2f5a760c31e628fa342f3a2bfd2dfd2aa96f1125cf8318d60e8ec99cb7a51dab1d780e606b4f3d47c2b7159f96" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz", + "hash": "90c6709c54c0f9f4d7100bbf9c3b8136b6468617034c23f6a60dc17092e311539d54b741e149b70f1b6a6e2c6be0aacc948d4c72abac724f47d5ea05e02a2939" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/224503be-904d-4735-a447-b180b5a90c88/c267d21bd55b3108a226b0b458f02ab7/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.exe", + "hash": "99c61acc8bf757793fa2a08eb29afcf3e365bf285fde929c58ce774424294570c26609468cc94f89d891f0c42769041d6ad9c6c759a0665727dba16288dd2f64" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/019706df-7545-4e5c-a8e0-1cd8ed308eca/eb7fe6847f4d9be5870ee0ea172d5025/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.zip", + "hash": "38bc46731201d5796d7a7ee30446fc35f2c225a75c978b896e7b6b09c7d537b22f991acbd413f6352df39cb8e69d94634b085968256377d83843527e55268d0d" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/bb120bd7-6656-4ebf-9efc-87dbbbd2f344/ef7cb2cf73d9a740c2af0b4ca9c2266e/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.exe", + "hash": "82dfbbe479df411c0a177459ed9af55c373561e5b23dfcd09eb1ba713764e0800519dc2b50138108520bb772c8aec696c31f99c85674cb7c7d7b999292668d31" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4c55bc67-e478-4fdc-abe3-08b8dd64f4e4/9cf46c3018f477a93a8498850e6c122b/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.zip", + "hash": "a993f0a23dee43f43e51509094f385379183ae916ee04f891927bc2398fd3645bfd866d0960c9d0ccf11f7878856dd7317298a6e5ec6a17dd7f32fb3890855a9" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/351f70a4-7eda-44e7-9e3b-44ee92e2b678/92d69c8dc447e2870f95ec535c3edf83/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.exe", + "hash": "9ee4c1da97526bffda9c1ad58e609bbbcad324dcb4e24b1cdd30f1feb0b37333e326b95ae08706e56f52c12ee20556151b13d7d5c04a0283f3420659c706ac63" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/2a5790bb-b57d-4c34-bbf9-d93a589bc065/0456e1a4bd06579fccf6fb776dfa5dc6/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.zip", + "hash": "1ea49121eebc8ad47dae4148bdda7ee9ca17f65f49af9a0ce39d42dfa3916ac4d8430d7d0c0c7f466f15fc0fdd844b891635e743ca4782571cdde76828f7d236" + } + ] + }, + "sdks": [ + { + "version": "9.0.100-preview.1.24101.2", + "version-display": "9.0.100-preview.1", + "runtime-version": "9.0.0-preview.1.24080.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/f5e9fc40-e56c-4276-bcf8-3ecf80f7c1a7/94900c87e4529a89ac71d164665088c7/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm.tar.gz", + "hash": "fa14b4545688097f490b9730a9063a3f7e7b779fd57a4bee43e61ef6f61c6aa5ba33ae5e1c8e0bc13dd060709d3eebbd04b044e06a9a70eecc73243db4107086" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz", + "hash": "b7c29e4e4baf2d2ba7b29fc5a080df708c5a915e6fb1ce2ff93ffc8f18e7725fae5d569ab1349ef4b067d05d00886a17c8d1a95e211602db1ee5da820b5edefd" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/4cf1722b-252e-4b66-a292-8aa97fdd0fec/7bc384770059a0348e4024d8b6489f3f/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm.tar.gz", + "hash": "821f7e1387a50b27c9fcad1e1955cc6aeb4012a0d1cef7273f882409ca18a42d97fe3fcad18eb141e8dd91afc16fa698a720763e4be6d7054af9c4e9104b43fd" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9fba65ff-def6-44cf-9230-1973c6a150a4/230b5ce3ae290ce5b10ed748b4f16dfc/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-arm64.tar.gz", + "hash": "93a0126c76bcd054a7119fb5e51b64980b130f55850d006d77ed4dd3a5f9ec79bfe49c0160c2c4dd58a01226c7264081f36b594e4b2d5c8d18a400ab57b86460" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/744e137c-6902-426e-a494-1ec7bc71a8eb/c5a6d2c3d3c4e57c10da28992e34617a/dotnet-sdk-9.0.100-preview.1.24101.2-linux-musl-x64.tar.gz", + "hash": "7b44faba92fcc228477dce2ecd3311f0d6b68c30f082ff020472b07fc2615aa0e591da9185667a172a6f708192c6610e6c20594f79cee8e1a046515ffbb8e26b" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz", + "hash": "e176126d9a12075d91a0ad2b4dd50021a564258742d86560bd216ac36482c763087bd8affc68fe9a8d3c46f61f864bc2c7c2e455739d21614516c4f73fd281fd" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f3a5f6fd-0b74-407c-a3cf-52792d76415f/53c4911d66ce7a8757c9d10c2c4d6414/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.pkg", + "hash": "5375987c0a02eb33d820802ec9c76acb14ccecf1a35df1f894bf7e362e1400a8b48dad628267b65d8bda29850f1a70ff4cc0960cd57cd61dc7f155e155bc9de6" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz", + "hash": "901835cfc277c626d38c7a2bc1a6704115d240812631cd32f4b51833b41ddcd3a4a169a1bbda42a9446eb33b2337f6a8c6410bc3d1bae557c8898d427e2fc8c1" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5c78b512-56ef-49a1-b181-96ca60917c06/f6ad92dac6791efabedd862a495e7d4b/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.pkg", + "hash": "8254d65d65ef1bc038255e651ad962bc15249b2f5a760c31e628fa342f3a2bfd2dfd2aa96f1125cf8318d60e8ec99cb7a51dab1d780e606b4f3d47c2b7159f96" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz", + "hash": "90c6709c54c0f9f4d7100bbf9c3b8136b6468617034c23f6a60dc17092e311539d54b741e149b70f1b6a6e2c6be0aacc948d4c72abac724f47d5ea05e02a2939" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/224503be-904d-4735-a447-b180b5a90c88/c267d21bd55b3108a226b0b458f02ab7/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.exe", + "hash": "99c61acc8bf757793fa2a08eb29afcf3e365bf285fde929c58ce774424294570c26609468cc94f89d891f0c42769041d6ad9c6c759a0665727dba16288dd2f64" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/019706df-7545-4e5c-a8e0-1cd8ed308eca/eb7fe6847f4d9be5870ee0ea172d5025/dotnet-sdk-9.0.100-preview.1.24101.2-win-arm64.zip", + "hash": "38bc46731201d5796d7a7ee30446fc35f2c225a75c978b896e7b6b09c7d537b22f991acbd413f6352df39cb8e69d94634b085968256377d83843527e55268d0d" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/bb120bd7-6656-4ebf-9efc-87dbbbd2f344/ef7cb2cf73d9a740c2af0b4ca9c2266e/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.exe", + "hash": "82dfbbe479df411c0a177459ed9af55c373561e5b23dfcd09eb1ba713764e0800519dc2b50138108520bb772c8aec696c31f99c85674cb7c7d7b999292668d31" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4c55bc67-e478-4fdc-abe3-08b8dd64f4e4/9cf46c3018f477a93a8498850e6c122b/dotnet-sdk-9.0.100-preview.1.24101.2-win-x64.zip", + "hash": "a993f0a23dee43f43e51509094f385379183ae916ee04f891927bc2398fd3645bfd866d0960c9d0ccf11f7878856dd7317298a6e5ec6a17dd7f32fb3890855a9" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/351f70a4-7eda-44e7-9e3b-44ee92e2b678/92d69c8dc447e2870f95ec535c3edf83/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.exe", + "hash": "9ee4c1da97526bffda9c1ad58e609bbbcad324dcb4e24b1cdd30f1feb0b37333e326b95ae08706e56f52c12ee20556151b13d7d5c04a0283f3420659c706ac63" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/2a5790bb-b57d-4c34-bbf9-d93a589bc065/0456e1a4bd06579fccf6fb776dfa5dc6/dotnet-sdk-9.0.100-preview.1.24101.2-win-x86.zip", + "hash": "1ea49121eebc8ad47dae4148bdda7ee9ca17f65f49af9a0ce39d42dfa3916ac4d8430d7d0c0c7f466f15fc0fdd844b891635e743ca4782571cdde76828f7d236" + } + ] + } + ], + "aspnetcore-runtime": { + "version": "9.0.0-preview.1.24081.5", + "version-display": "9.0.0-preview.1", + "version-aspnetcoremodule": [ + "19.0.24031.0" + ], + "vs-version": "", + "files": [ + { + "name": "aspnetcore-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/27ce8ce5-a12e-47d5-b075-5c6034c86c40/6280dfd63195eeb410c4b70dff2d6ba9/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm.tar.gz", + "hash": "688c07f9d896db90a1ea863b008fff5187d50b2aef352298f3e4c16522812f3dc9be22f8bdee89abde8554e7668bb9f35d0aa4746b1fd9c42ea0aa8ef84f1f83" + }, + { + "name": "aspnetcore-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/3f2586f3-89fd-44ad-aae2-4c241f72996f/f973c7140305733792dd25b466e37606/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm64.tar.gz", + "hash": "118967e64995d7c242738bf806928ecc52cfae3b0e0429a6951047eaf37d27bdde0adc0c6dc74e32d61b69565f7666cbfd4658396c37988e5d343debcc15bdf6" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/e7783447-29c2-4866-bd77-fcc207fe2d73/a1d3af0e7af02e478e7f748011af1c48/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-arm.tar.gz", + "hash": "1d322b98cb039938a735267b29f49d1bb5b024fe2fda96608de725c2419d2da3cae8f6e3e7fa2594d0d7768180ced2bc1c2da20582380aa66954e34fe0ed01ea" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/df69432f-27c5-450b-8afc-b7c9e35630d0/b5bc58a367875a214cf0c2c11ad174a9/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-arm64.tar.gz", + "hash": "b297d9cfa88fbd879f4e36a567b17109d5a0ac32102afdc5243c181f469f5c9beac0ec2ac776b68b7419ad9b9ddb932ef0c8f79a7cc14e6d62a491959685969c" + }, + { + "name": "aspnetcore-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/d3f3a6eb-ef34-474b-944e-bed7bdb040cc/bccb1d80864eaaf576c25444525f9224/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-musl-x64.tar.gz", + "hash": "5ddef8928f7db38a3bc9fdad0d7cf8bddd8dee698ce8b72e7e7eedca5d769b70eab79ed161576ea8a5eb65806f80b27f6668f200ddd6c9425ab724074c543b03" + }, + { + "name": "aspnetcore-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/14b2b268-4d58-4f7b-9708-46c5a0a5b868/3cfbd27c7e2aabc0ca70f474709a4767/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-x64.tar.gz", + "hash": "29bfe0b5b72608eba97151909308a67a47dc299902a46bf1a22d67bb5f8a0c87c6f4533c0c2d4679f9440f9ccccf549c434a4280c101f7633bdbdcf049c95817" + }, + { + "name": "aspnetcore-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a407f4d8-183b-45c9-8153-c889c10630b9/2388fbcc5171e20d05abeb301027df2e/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-arm64.tar.gz", + "hash": "09746054c291b10bacf3fba8ad147443fd41f42b6b04d9559281bc7d919ddc56ebe7402021997f6f24b745b3292368719cc2142d0eebba76226c5603545b6743" + }, + { + "name": "aspnetcore-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/2e9a9af2-f1dd-467a-85f3-430f5142bf0b/6ce0853ee69a127bb767270a737f6467/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-x64.tar.gz", + "hash": "3ed80631a3ca0a4684a70fc0f17d46257a63cc71c7497c958accb4d329eff4a7c832a29c028b608798fbed0b82e2c5b7d5533c57dff2188d4142559b57341192" + }, + { + "name": "aspnetcore-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f942b1be-4e32-43cd-914f-24bd19b7e583/262944dd0604ab13fc39d5387c59d53d/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-arm64.zip", + "hash": "4ef745d883f519a3949ff7479950945a6952de6c0ab10aa0d9320dc9c6578221bf7551788f17d62a2c287f5a662ea81c3b747d1a1b28184a32f7cce47f0ef4cb" + }, + { + "name": "aspnetcore-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/427d2f8c-58f0-4ebb-b3c2-8960b88d03a2/354461a9a09d96678505e964f829df42/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x64.exe", + "hash": "1644a3474e01a3b5805b341881b4450af885b043d7578360a7a0bfecb13158305d878c9624d697774e10ed5c84c976c1a7f541ecd585bd6d3d53084f6d9fb880" + }, + { + "name": "aspnetcore-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/188d9bb7-2cd9-48b0-ae5f-c1919ebb0750/c1c4b6c669863c4f6fb5bbe9b6498ca8/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x64.zip", + "hash": "e8ebffbc89b516aedfab48fa8cfd9ec529437df21724b6e7f0a8b8b97eba29d274499a37fca0aaa0f7bd84ab3fb839a2ff09c6042f3abe568d4ec8191becbbd7" + }, + { + "name": "aspnetcore-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/cf9d5773-4262-4135-b8cd-10bdb1d64cf3/2999b27d44b816b58a966d74d43ca2f6/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x86.exe", + "hash": "219addc5b3fc08f3e9c650171cb2804161c9a4c3a70f5367a32a2ef368a7850a8b18d232f27d5c265b323c4ccc7034f21d820558e2f05c59f8fd6f444e7c44ac" + }, + { + "name": "aspnetcore-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/d5423ff0-60fe-4e91-b083-5aefca88610a/962fb47ce2b483795e7eb33f08a4bc46/aspnetcore-runtime-9.0.0-preview.1.24081.5-win-x86.zip", + "hash": "6e7730207fdfef400edac61ec142dd7440376699e25675d13fe05b347264f69b9a7cc3b047a8051b14c7862d144a465fe63fc9ff2a6d3c3c7a2a3cb46d1f6657" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/fbb4cdaa-f4de-4297-bce0-5af6e8a8148f/90c097d5618d4dd81d8d489abce1645b/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-arm.tar.gz", + "hash": "2310efa27939af7f28ff3869a640a182a3fca6374b06db98fc9cdc6a5b49b75de9904bb47bb3e15334620357662ede933b08994b35d5bc1dd5c859ca73530602" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/42ca6325-0b0c-4ee6-96c4-ac46affd2c64/20f5fc2ee183de3450cd33e06e5c8bf2/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-arm64.tar.gz", + "hash": "1ea9bc90557a4196eecc51f8965994c6feb446c671b19236b6593a8996641410cc15f2ed6b2a7be73217ae89683664cee2af68594e3a0164306b770778d96295" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/b5a23389-0099-4b0c-adde-6acbee4412b9/10a484a2160790fb695c8e2eb6d34d53/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-arm.tar.gz", + "hash": "6f070ba486fdc59d1717c2089f322329d28a4996d5e165ac55f7ed07dc4f014fa18efc2ab36e50fbe0959d10960a346476fede4ef4115e8972ee105fc7b777a5" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/c165e81b-e915-4c10-9fd1-86e1a3eaabf6/184c4299dc0fcf3b18a8e18f989a3d6b/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-arm64.tar.gz", + "hash": "5ef4134b9ecdc4b80bb402209fd2adba4c219d235e0f3a4d196c8d7ac0366c9fd40c6a515d1f585b3f9b3bcbeaf7bb9c41a64643ef2f065305abdd47014879c0" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/bede20f1-0e70-4a08-a1d8-df9613e7ddf3/aa55cc5fa325b264eb1cbda8eb45d8b7/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-musl-x64.tar.gz", + "hash": "d5740881123b148f0e9b3d990f2407da9b0a4cb61e6e853c9eb709a52196dccc2e2cb8b9ee5c778fc6022fb5a45a076436020a4817089dbb67e2e126f717b342" + }, + { + "name": "aspnetcore-runtime-composite-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f7492292-937e-4ed2-aac1-1e1aee31c19b/f345f6bc48f5c073b048e2946d504041/aspnetcore-runtime-composite-9.0.0-preview.1.24081.5-linux-x64.tar.gz", + "hash": "8022e4a1d37089242905ca9c4fd5f37a22136f377a170a677f1005fc8ce32d5bbc6341c0b80236d8287022533d908a4d91120bac894ab418b20a056de2e45b61" + }, + { + "name": "dotnet-hosting-win.exe", + "rid": "", + "url": "https://download.visualstudio.microsoft.com/download/pr/6728a941-7b39-44af-b75c-91769681007d/0f062452057e1f17bcf2e1af7e2a5414/dotnet-hosting-9.0.0-preview.1.24081.5-win.exe", + "hash": "67a972f36f9e31417e6746b9ea69fc033e945708c2e43be665239ac16f561e92960240f789d942ae886b4d4a38a49e1ed226e5b92f0eeb1e66d178c760cd4960", + "akams": "https://aka.ms/dotnetcore-9-0-windowshosting" + } + ] + }, + "windowsdesktop": { + "version": "9.0.0-preview.1.24081.3", + "version-display": "9.0.0-preview.1", + "files": [ + { + "name": "windowsdesktop-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/5bcc6b35-e7e7-48b5-8cf2-277a60fc03e1/d5c4319efbf8e734f9dd11a358c03bd4/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-arm64.exe", + "hash": "bf252da538951cce59469e1d2074d34c4b8bb04de33421c9b594c447c8d3b9e2e2cacd28e4f515ba1a2e430db18d11c70bffb07cdcb518a3d035cf88f777a768" + }, + { + "name": "windowsdesktop-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/dc0ae26f-121d-4f63-a066-2333861699b7/45bb105bf0b9756495fe8d217f20c397/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-arm64.zip", + "hash": "2df2ba1949621525b70767bd1230928d8d82255e58a0f28a131ae4345d32e62ceeac41f42bac119c7b60eef0f9731d4920e522a4555e5d64a34ef361ef5128de" + }, + { + "name": "windowsdesktop-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0c804185-7f86-4167-8703-8365d4939d72/02935dd20c741d36acb2c4eb2f2d5a21/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x64.exe", + "hash": "ef2731f34d6d2e732deaa5dff36e4fc04d6c2d6f600d0faf0a8f4f662e731fb6eeb778efa2dbc287dc04bdc00fda257f194ffb7821958cd4137683feaabe9d12" + }, + { + "name": "windowsdesktop-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/9a297cbf-b641-4026-bca8-c68293c4fa8f/05b5d48d0ab2dc0cea2271f85c027c87/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x64.zip", + "hash": "15f93de63a9144e01528bafd169d62a0e7fa1fc5a85c4e7422a1553b79ddbbc7213488facc38d677b8fca90778c608d623f49ada121a16664d675a1d7e225d9e" + }, + { + "name": "windowsdesktop-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/e3264b5f-c04b-427b-bf87-f9a264f53b0d/9f564a10f3af50fda2ec7ef2365b10d5/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x86.exe", + "hash": "0288cddb418da54bbc09fdf9640eaa8ea0c236e4cec8613b70c10f6a2e2f831104d68d0bbe11138ba51bf51861cfdb6fba532394e3e58a7ce255f28f7f71a474" + }, + { + "name": "windowsdesktop-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/f0788f54-28b1-4a6d-ae86-1ead236dda97/37a05b2928ca436d0424aeb3d5ce4e4f/windowsdesktop-runtime-9.0.0-preview.1.24081.3-win-x86.zip", + "hash": "e47ae91d7bf992e9dda09519551dc2dc9f5cec7b61542961c3b8c9ca67606204ed2f212934bed8a34bf6331d095683f018bb4418fed442e5b3ead1a11b479f28" + } + ] + } + } + ] +} diff --git a/release-notes/9.0/supported-os.md b/release-notes/9.0/supported-os.md index 4c43761cfb..c83668e65d 100644 --- a/release-notes/9.0/supported-os.md +++ b/release-notes/9.0/supported-os.md @@ -14,7 +14,7 @@ OS | Version | Architectures [Windows Server Core][Windows-Server] | 2012+ | x64, x86 | [Windows Server][Windows-Server-lifecycle] [Nano Server][Nano-Server] | Version 1809+ | x64 | [Windows Server][Windows-Server-lifecycle] -[Windows-client]: https://learn.microsoft.com/windows/ +[Windows-client]: https://www.microsoft.com/windows/ [Windows-lifecycle]: https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet [win-client-docker]: https://hub.docker.com/_/microsoft-windows [Windows-Server-lifecycle]: https://learn.microsoft.com/windows-server/get-started/windows-server-release-info @@ -98,15 +98,14 @@ OS | Version | Architectures | OS | Version | Architectures | ------------------------------|-------------------------|-------------------| -[iOS][iOS] | 12.2+ | Arm64 | -[iOS Simulator][iOS] | 12.2+ | x64, Arm64 | -[tvOS][tvOS] | 12.2+ | Arm64 | -[tvOS Simulator][tvOS] | 12.2+ | x64, Arm64 | -[MacCatalyst][MacCatalyst] | 15.0+ (macOS 12.0+) | x64, Arm64 | +[iOS][iOS] | 12.0+ | Arm64 | +[iOS Simulator][iOS] | 12.0+ | x64, Arm64 | +[tvOS][tvOS] | 12.0+ | Arm64 | +[tvOS Simulator][tvOS] | 12.0+ | x64, Arm64 | +[MacCatalyst][macOS] | 12.0+ | x64, Arm64 | [iOS]: https://support.apple.com/ios [tvOS]: https://support.apple.com/apple-tv -[MacCatalyst]: https://developer.apple.com/documentation/uikit/mac_catalyst ## QEMU diff --git a/release-notes/releases-index.json b/release-notes/releases-index.json index 5fc541fd6b..f72ccf7f23 100644 --- a/release-notes/releases-index.json +++ b/release-notes/releases-index.json @@ -1,6 +1,18 @@ { "$schema": "https://json.schemastore.org/dotnet-releases-index.json", "releases-index": [ + { + "channel-version": "9.0", + "latest-release": "9.0.0-preview.1", + "latest-release-date": "2024-02-13", + "security": false, + "latest-runtime": "9.0.0-preview.1.24080.9", + "latest-sdk": "9.0.100-preview.1.24101.2", + "product": ".NET", + "release-type" : "sts", + "support-phase": "preview", + "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/9.0/releases.json" + }, { "channel-version": "8.0", "latest-release": "8.0.1", From 53ced12c1eeb2878c65aff003b33fb952e772305 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 13 Feb 2024 09:17:15 -0800 Subject: [PATCH 02/16] Apply suggestions from code review --- release-notes/9.0/preview/preview1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/9.0/preview/preview1/README.md b/release-notes/9.0/preview/preview1/README.md index 36650eca61..fda3245596 100644 --- a/release-notes/9.0/preview/preview1/README.md +++ b/release-notes/9.0/preview/preview1/README.md @@ -4,7 +4,7 @@ Welcome to .NET 9! We're happy to deliver the first preview of .NET 9 and share 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). Instructions on getting started .NET 9 can be found on the [get started guide](../../get-started.md). -You may be surprised to be reading about our release on GitHub Discussions. Check out [Welcome to .NET Release News on GitHub Discussions!](https://github.com/dotnet/core/discussions/9131) to learn more about how we're approaching documenting and sharing preview releases. +You may be surprised to be reading about our release on GitHub & GitHub Discussions. Check out [Welcome to .NET Release News on GitHub Discussions!](https://github.com/dotnet/core/discussions/9131) to learn more about how we're approaching documenting and sharing preview releases. ## Release notes & Discussions From 85501aa86a32c8ca41c0b73b6f4c86137e08cae9 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 13 Feb 2024 09:18:33 -0800 Subject: [PATCH 03/16] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 0ffd9f8053..2a647ba98e 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,12 @@ Welcome to the home of .NET news & release notes to help you stay up to date wit Follow our [GitHub Discussions](https://github.com/dotnet/core/discussions), where you will find the latest new on preview releases, service releases, and CVEs for .NET. +You can subscribe to news posts with the following feeds: +* All Discussions: https://github.com/dotnet/core/discussions.atom +* News: https://github.com/dotnet/core/discussions/categories/news.atom +* Security Disclosures (CVEs): https://github.com/dotnet/core/discussions/categories/security-disclosures-cves.atom +* Sevicing Releases: https://github.com/dotnet/core/discussions/categories/servicing-releases.atom + ## Release Notes The following [.NET releases](./releases.md) are currently supported: From 059bd4b62c5255787c12a0ee598ce5d0f8d27045 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 13 Feb 2024 09:19:18 -0800 Subject: [PATCH 04/16] Update README.md --- release-notes/9.0/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/release-notes/9.0/README.md b/release-notes/9.0/README.md index 3d617aefa3..91be3caeaa 100644 --- a/release-notes/9.0/README.md +++ b/release-notes/9.0/README.md @@ -2,8 +2,6 @@ [.NET 9](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/) is a [Standard Term Support (STS)](../../release-policies.md) release and will be supported for 18 months, from November 12th, 2024 to May 13th, 2026. It is [supported](../../support.md) on [multiple operating systems](supported-os.md). - - - [Downloads](https://dotnet.microsoft.com/download/dotnet/9.0) - [Linux Package Managers](https://learn.microsoft.com/dotnet/core/install/linux) - [Containers](https://mcr.microsoft.com/catalog?search=dotnet/) From ecaec40180a7d4a2937a3a09bb71298f23067f16 Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 13 Feb 2024 09:20:46 -0800 Subject: [PATCH 05/16] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2a647ba98e..cb667e25c0 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ 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](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-1/) | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | November 10, 2026 | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.1][8.0.1] | 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.15][7.0.15] | 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.26][6.0.26] | November 12, 2024 | @@ -23,6 +24,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.1]: release-notes/9.0/preview/preview1/9.0.0-preview.1.md [8.0.1]: release-notes/8.0/8.0.1/8.0.1.md [7.0.15]: release-notes/7.0/7.0.15/7.0.15.md [6.0.26]: release-notes/6.0/6.0.26/6.0.26.md From e4654ea767d28815a2f93a98a3644e1733d22984 Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 13 Feb 2024 09:21:28 -0800 Subject: [PATCH 06/16] Update releases.md --- releases.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/releases.md b/releases.md index 92f481c927..c587e7ae40 100644 --- a/releases.md +++ b/releases.md @@ -10,10 +10,12 @@ The following table lists in-support .NET releases. | Version | Release Date | Support | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | +| [.NET 9](9.0/README.md) | [November 12, 2024](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-1/) | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8) | [LTS][policies] | [8.0.1][8.0.1] | 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.15][7.0.15] | 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.26][6.0.26] | November 12, 2024 | +[9.0.0-preview.1]: release-notes/9.0/preview/preview1/9.0.0-preview.1.md [8.0.1]: release-notes/8.0/8.0.1/8.0.1.md [7.0.15]: release-notes/7.0/7.0.15/7.0.15.md [6.0.26]: release-notes/6.0/6.0.26/6.0.26.md From 5713bcf39ac3bdd7d440a52d41430b1e60ff9742 Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 13 Feb 2024 09:21:38 -0800 Subject: [PATCH 07/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cb667e25c0..1df7c86a1b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ 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](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-1/) | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | November 10, 2026 | +| [.NET 9](9.0/README.md) | [November 12, 2024](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-1/) | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.1][8.0.1] | 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.15][7.0.15] | 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.26][6.0.26] | November 12, 2024 | From e9aa4b03660638c87b84367923e71717f826b87f Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 13 Feb 2024 09:23:00 -0800 Subject: [PATCH 08/16] Update README.md Co-authored-by: James Montemagno --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1df7c86a1b..27b01c6396 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ 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](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-1/) | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | +| [.NET 9](9.0/README.md) | [November 12, 2024](https://aka.ms/dotnet/9/preview1) | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.1][8.0.1] | 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.15][7.0.15] | 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.26][6.0.26] | November 12, 2024 | From 3bfd204829f759e594b9b1bfe8ce7c7388f24b7f Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 13 Feb 2024 09:24:40 -0800 Subject: [PATCH 09/16] Apply suggestions from code review --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27b01c6396..07dfca4082 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ 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](https://aka.ms/dotnet/9/preview1) | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | +| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | [8.0.1][8.0.1] | 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.15][7.0.15] | 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.26][6.0.26] | November 12, 2024 | From e7152edac2a7b256e64042456b7fc367797d2320 Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 13 Feb 2024 09:25:26 -0800 Subject: [PATCH 10/16] Delete release-notes/9.0/preview/9.0.0-preview.1.md --- release-notes/9.0/preview/9.0.0-preview.1.md | 165 ------------------- 1 file changed, 165 deletions(-) delete mode 100644 release-notes/9.0/preview/9.0.0-preview.1.md diff --git a/release-notes/9.0/preview/9.0.0-preview.1.md b/release-notes/9.0/preview/9.0.0-preview.1.md deleted file mode 100644 index 6abd60722b..0000000000 --- a/release-notes/9.0/preview/9.0.0-preview.1.md +++ /dev/null @@ -1,165 +0,0 @@ -# .NET 9.0.0 Preview 1 - February 13, 2024 - -The .NET 9.0.0 Preview 1 and .NET SDK 9.0.100-preview.1.23115.2 releases are available for download. The latest 9.0 release is always listed at [.NET 9.0 Releases](../README.md). - -## What's new in .NET 9 Preview 1 - -.NET 9 is the next major release of .NET following .NET 9. You can see some of the new features available with .NET 9 Preview 1 at [dotnet/core #xxxx](https://github.com/dotnet/core/issues/xxxx). - -See the [.NET][dotnet-blog], [EF Core][ef-blog] and [ASP.NET Core][aspnet-blog] blogs for additional details. -Here is list of some of the additions and updates we're excited to bring in Preview 1. - -* EntityFramework Core: [bugs][ef_bugs] | [features][ef_features] -* .NET SDK [bugs][sdk_bugs] - -## 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.1.23115.2 -``` - -## .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 - -You need [Visual Studio 17.4 latest preview](https://visualstudio.microsoft.com) to use .NET 9.0 on Windows. On macOS, you need the latest version of [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). The [C# extension](https://code.visualstudio.com/docs/languages/dotnet) for [Visual Studio Code](https://code.visualstudio.com/) supports .NET 9.0 and C# 11. - - -## Feedback - -Your feedback is important and appreciated. We've created an issue at [dotnet/core #8213](https://github.com/dotnet/core/issues/8213) for your questions and comments. - -[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/preview/9.0.0-preview.1.md - -[checksums-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.1-sha.txt -[checksums-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/checksums/9.0.0-preview.1-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-8-preview-1 -[aspnet-blog]: https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-dotnet-8-preview-1/ -[ef-blog]: https://devblogs.microsoft.com/dotnet/announcing-ef8-preview-1/ -[ef_bugs]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-bug -[ef_features]: https://github.com/dotnet/efcore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+is%3Aclosed+label%3Atype-enhancement - -[aspnet_bugs]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+label%3ADone+label%3Abug -[aspnet_features]: https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A9.0.0-preview1+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.1.23110.8) -[dotnet-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/3b7465f1-467e-405b-bb4d-546e3f9026d1/818a6a302e7bde633ee0cc62b609aeab/dotnet-runtime-9.0.0-preview.1.23110.8-linux-arm.tar.gz -[dotnet-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/29109381-5068-4e80-a3f8-d0c825202bbc/b4205a8a483c639c0cfdf54bb1fb5ec6/dotnet-runtime-9.0.0-preview.1.23110.8-linux-arm64.tar.gz -[dotnet-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/4b5ac13b-eb03-468f-b47b-0c0b0a229c34/2b475a0d3fbff23b500230354db0ef87/dotnet-runtime-9.0.0-preview.1.23110.8-linux-musl-arm.tar.gz -[dotnet-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/2f8d9b41-337e-4b53-9c1b-a892dc6a8042/ee14d933741ebebc044f7a727d731fc9/dotnet-runtime-9.0.0-preview.1.23110.8-linux-musl-arm64.tar.gz -[dotnet-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/6c34a04d-9e4c-4644-ae8e-99e02c56bc47/dc4de18e698a932b91834495b9cae624/dotnet-runtime-9.0.0-preview.1.23110.8-linux-musl-x64.tar.gz -[dotnet-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/6c535b62-2132-4f07-90d0-2b172d18e436/b4b8aa2b558e1472c650a40707f25241/dotnet-runtime-9.0.0-preview.1.23110.8-linux-x64.tar.gz -[dotnet-runtime-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/da75b8f3-eaa6-4e81-89ea-5b1c357e1c14/1abeb68098e58c7c3a290e4d67920cf5/dotnet-runtime-9.0.0-preview.1.23110.8-osx-arm64.pkg -[dotnet-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/13005a07-288f-4c55-b874-71a336d4c687/ba476df7f39fd64214b1911ac4791c97/dotnet-runtime-9.0.0-preview.1.23110.8-osx-arm64.tar.gz -[dotnet-runtime-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/b2dfdd00-3ec3-4834-8790-daf3729388b7/fbcd513ad80edeed216a573706b31682/dotnet-runtime-9.0.0-preview.1.23110.8-osx-x64.pkg -[dotnet-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/02916946-04e0-45d1-b36d-07ebc9bab6c2/c160d7f42df423bd40d7251ee015b440/dotnet-runtime-9.0.0-preview.1.23110.8-osx-x64.tar.gz -[dotnet-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/f3aad036-4c65-4e2d-95b2-a7a3999f93de/c79f2f807a76114ba22270f29d88bff6/dotnet-runtime-9.0.0-preview.1.23110.8-win-arm64.exe -[dotnet-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/735b4b58-1993-4c90-af52-c18adcd78d27/2e24da183158102b29efac13d96c1078/dotnet-runtime-9.0.0-preview.1.23110.8-win-arm64.zip -[dotnet-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/0a3c32e2-f2fb-494e-b70f-690bcbb6943b/346acb237c1b630c21c112ec0163f3e6/dotnet-runtime-9.0.0-preview.1.23110.8-win-x64.exe -[dotnet-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/7518ee75-65fc-4f81-8b2c-cef15d4e9b09/fd3003f3de906ba1bf224d8396054def/dotnet-runtime-9.0.0-preview.1.23110.8-win-x64.zip -[dotnet-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/65710155-7232-446e-aece-8861bfe97624/28ceecaaef6fb9cbc531119d7973ff9e/dotnet-runtime-9.0.0-preview.1.23110.8-win-x86.exe -[dotnet-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/02a80df4-e93e-457b-ac26-638572a18fbb/8051f5da52a0c2fa91fb0d22e595ecdc/dotnet-runtime-9.0.0-preview.1.23110.8-win-x86.zip - -[//]: # ( WindowsDesktop 9.0.0-preview.1.23112.2) -[windowsdesktop-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/19536364-47ac-4668-93b4-7ac161113e97/b76d7bcc975d642ca2f2c6a9849868a6/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-arm64.exe -[windowsdesktop-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/62660c8f-16f1-4e3e-a08d-9ff07d982841/3a269998e9add66853b52ca3320a5ca3/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-arm64.zip -[windowsdesktop-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/16b93712-2a98-4e2e-ab28-8d195695163f/74e0b6eba4df1398c6eb5779bbb6ef32/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-x64.exe -[windowsdesktop-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/b4654cad-81ab-4b77-9e53-3d97c054367a/cd5145a9c61682028bca684b3b7d096b/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-x64.zip -[windowsdesktop-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/7568cf55-1140-4afd-bfc0-2af10198215b/d3323aac0a304959c625315bc618433e/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-x86.exe -[windowsdesktop-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/ae636827-07f0-49c7-9be7-45df8f4c9b3a/ec22c4e75a6800dcf7941547ba6409ee/windowsdesktop-runtime-9.0.0-preview.1.23112.2-win-x86.zip - -[//]: # ( ASP 9.0.0-preview.1.23112.2) -[aspnetcore-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/c1d2c535-8832-48c2-87bb-d033fc2c6f8b/80291a7b9988aca397cbe5ac8821d6cc/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-arm.tar.gz -[aspnetcore-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/63cbd12f-0328-4828-878c-4970ebe2561d/3b0e89d0e68beb6d09ad2323d64d039c/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-arm64.tar.gz -[aspnetcore-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/49f41a35-b175-4699-a6ab-aa6dffc806ee/3247951bf1976a38abe0e0c9d641802a/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-musl-arm.tar.gz -[aspnetcore-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/19630d64-685e-4882-a7e8-a70077642cec/0a7680100590d0d4bef2a6ee9004ab4e/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-musl-arm64.tar.gz -[aspnetcore-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f7a955d6-27fd-4a8f-8c1d-ccafe789c723/c01fcac1c82a6e52bd007a5f83d6251c/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-musl-x64.tar.gz -[aspnetcore-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/bcd36740-4478-4104-aad3-97de2eda3c63/4278c479d008a08a82e6ed799ea4cab6/aspnetcore-runtime-9.0.0-preview.1.23112.2-linux-x64.tar.gz -[aspnetcore-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/00e1ec5d-62c0-4084-bf5d-f5667a77afe5/f4d1ceeb2d51a60323084ef43317b1f2/aspnetcore-runtime-9.0.0-preview.1.23112.2-osx-arm64.tar.gz -[aspnetcore-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/60354a8c-773b-4999-af88-f6232bf5b644/19f1f472670e5625ee6a75d09b95653b/aspnetcore-runtime-9.0.0-preview.1.23112.2-osx-x64.tar.gz -[aspnetcore-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/a078e06e-3942-4fca-99ee-29e1aa50b07b/af7d350201b779ee06365f19f0e487e6/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-arm64.zip -[aspnetcore-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/12ddd219-183e-4c8f-9079-ed04118328ad/6a51b50f0469e83ab21656e89079ee4d/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-x64.exe -[aspnetcore-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/7a8d9400-6123-4da2-9425-2206666af7b7/234ab5bcdcc243f9a096deb6e5005629/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-x64.zip -[aspnetcore-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/d922e621-f8ad-49ae-b68f-468884902a4b/195ddbf5b9091f70eb86fe268c099e01/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-x86.exe -[aspnetcore-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/c4d490ef-b84c-4d72-917e-ca888708897b/890bb35f7eb345a41d417f6f3fb27a50/aspnetcore-runtime-9.0.0-preview.1.23112.2-win-x86.zip -[dotnet-hosting-win.exe]: https://download.visualstudio.microsoft.com/download/pr/b671a565-b18e-4c5d-84f3-1dba30b2d5ec/ea9dae82779be5c3456f94b60d74b418/dotnet-hosting-9.0.0-preview.1.23112.2-win.exe - -[//]: # ( SDK 9.0.100-preview.1.23115.2) -[dotnet-sdk-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/1fb6d1b1-e976-4e94-9009-229ee313dfa5/5476a83dcda6d51617598cff9db793bd/dotnet-sdk-9.0.100-preview.1.23115.2-linux-arm.tar.gz -[dotnet-sdk-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/57c316ef-4b1d-4b1e-b180-f38302132d3d/b938e1b373897fadfb25ff4b55ca32e6/dotnet-sdk-9.0.100-preview.1.23115.2-linux-arm64.tar.gz -[dotnet-sdk-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/23b0480f-384f-4ba8-b047-140ff0d67806/a1a01f23f1a7fc8d996a1e2d99560273/dotnet-sdk-9.0.100-preview.1.23115.2-linux-musl-arm.tar.gz -[dotnet-sdk-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/b4fde77f-5016-40ef-be38-ecea34fe73b3/6f2f78d153c102f592aecbf364befba6/dotnet-sdk-9.0.100-preview.1.23115.2-linux-musl-arm64.tar.gz -[dotnet-sdk-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/60cae83e-cc73-4ce4-9d94-c828fad4d9e0/4add3672b15f491291764c6530eb1bb5/dotnet-sdk-9.0.100-preview.1.23115.2-linux-musl-x64.tar.gz -[dotnet-sdk-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e2578737-231b-493c-a6ee-f181496fe679/18038808d2621094ebe172ca011a7c22/dotnet-sdk-9.0.100-preview.1.23115.2-linux-x64.tar.gz -[dotnet-sdk-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/b54698c3-d371-492f-b9f1-998a60136156/3ff37050db93fd5fd5ab86befe42bb08/dotnet-sdk-9.0.100-preview.1.23115.2-osx-arm64.pkg -[dotnet-sdk-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/00476255-fac3-4e26-98a4-c487aa89945c/76550e8fb59f35fcb6b789d570b9ace5/dotnet-sdk-9.0.100-preview.1.23115.2-osx-arm64.tar.gz -[dotnet-sdk-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/993e8460-176f-4669-9337-b4725c355146/f903c2ff758fee42121da67772dfd0c5/dotnet-sdk-9.0.100-preview.1.23115.2-osx-x64.pkg -[dotnet-sdk-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0b01073d-3861-4fe0-abba-41e271c79725/12150bdbeeeb50e157b91f2adab90c80/dotnet-sdk-9.0.100-preview.1.23115.2-osx-x64.tar.gz -[dotnet-sdk-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/4f5a7e91-b186-40da-95a9-c01a8f8cd55f/1189b1bf14136d7075ef6a23c3a5b70d/dotnet-sdk-9.0.100-preview.1.23115.2-win-arm64.exe -[dotnet-sdk-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/86553a5e-ed5f-462b-819a-e850972413d2/41e5581320aac04fb55fa929603f1b2a/dotnet-sdk-9.0.100-preview.1.23115.2-win-arm64.zip -[dotnet-sdk-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/9b723333-0fa0-4601-bb83-aa842fda27d7/fd2b0e727ba2442a93a511aaa3817e67/dotnet-sdk-9.0.100-preview.1.23115.2-win-x64.exe -[dotnet-sdk-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/a1b7c03d-7c06-4d07-a99d-b7c919fc9b9a/0b57d52282f0e56c8701aaafd31cab90/dotnet-sdk-9.0.100-preview.1.23115.2-win-x64.zip -[dotnet-sdk-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/efef3a6c-b2b0-4c2e-82d0-ead02e4d6bb0/a4e88db099d462f65e08823d7c526ed3/dotnet-sdk-9.0.100-preview.1.23115.2-win-x86.exe -[dotnet-sdk-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/83c277bd-f1da-404e-8d7b-d3ecaeff3033/bd44769f850d158983a5d9215facc02d/dotnet-sdk-9.0.100-preview.1.23115.2-win-x86.zip From 727d0af8ac4255216094d7cc4d3d4cdf0de2fc71 Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 13 Feb 2024 09:25:58 -0800 Subject: [PATCH 11/16] Update 9.0.0-preview.1.md --- release-notes/9.0/preview/preview1/9.0.0-preview.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/9.0/preview/preview1/9.0.0-preview.1.md b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md index aabeada82b..6256f442f7 100644 --- a/release-notes/9.0/preview/preview1/9.0.0-preview.1.md +++ b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md @@ -73,7 +73,7 @@ The following repos have been updated. ## Feedback -Your feedback is important and appreciated. We've created an issue at [dotnet/core #xxxx](https://github.com/dotnet/core/issues/xxxx) for your questions and comments. +Your feedback is important and appreciated. We've created an issue at [dotnet/core #9161](https://github.com/dotnet/core/issues/9161) for your questions and comments. [blob-runtime]: https://dotnetcli.blob.core.windows.net/dotnet/Runtime/ [blob-sdk]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/ From 909ecaa73f8663e3d8662a3d2126c8f7e0fe1655 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 13 Feb 2024 09:26:17 -0800 Subject: [PATCH 12/16] Apply suggestions from code review --- releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releases.md b/releases.md index c587e7ae40..b06c082b98 100644 --- a/releases.md +++ b/releases.md @@ -10,7 +10,7 @@ The following table lists in-support .NET releases. | Version | Release Date | Support | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | -| [.NET 9](9.0/README.md) | [November 12, 2024](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9-preview-1/) | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | +| [.NET 9](release-notes/9.0/README.md) | November 12, 2024 | [STS][policies] | [9.0.0-preview.1][9.0.0-preview.1] | | | [.NET 8](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8) | [LTS][policies] | [8.0.1][8.0.1] | 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.15][7.0.15] | 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.26][6.0.26] | November 12, 2024 | From 781703c5270fedf90af8e82624846d7984f3a6e3 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 13 Feb 2024 09:31:57 -0800 Subject: [PATCH 13/16] Apply suggestions from code review --- release-notes/9.0/get-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/9.0/get-started.md b/release-notes/9.0/get-started.md index fca28168a4..b7437e4ac6 100644 --- a/release-notes/9.0/get-started.md +++ b/release-notes/9.0/get-started.md @@ -3,7 +3,7 @@ To get started with .NET 9, [install the .NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0). -If you're on Windows using Visual Studio, we recommend installing the latest [Visual Studio 2022 preview](https://visualstudio.com/preview), or get started with Visual Studio Code and the [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit) extension. +If you're on Windows using Visual Studio, we recommend installing the latest [Visual Studio 2022 preview](https://visualstudio.microsoft.com/vs/preview/), or get started with Visual Studio Code and the [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit) extension. ## .NET MAUI From 863c37703f38876e8fdfc8b90c24221e880a24e6 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 13 Feb 2024 09:33:11 -0800 Subject: [PATCH 14/16] Apply suggestions from code review --- release-notes/9.0/preview/preview1/sdk.md | 1 - 1 file changed, 1 deletion(-) diff --git a/release-notes/9.0/preview/preview1/sdk.md b/release-notes/9.0/preview/preview1/sdk.md index 4b883ddf8d..bdca603edf 100644 --- a/release-notes/9.0/preview/preview1/sdk.md +++ b/release-notes/9.0/preview/preview1/sdk.md @@ -3,7 +3,6 @@ .NET 9 Preview 1 includes several new SDK features. SDK updates in .NET 9 Preview 1: -* [Discussion](https://github.com/dotnet/sdk/discussions/categories/announcements) * [What's new in the .NET SDK in .NET 9](https://review.learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation. .NET 9 Preview 1: From 8339c4d11ea34f069372e3c54d3a52e0065f6f55 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Tue, 13 Feb 2024 09:34:51 -0800 Subject: [PATCH 15/16] Add images --- .../9.0/preview/preview1/aspnetcore.md | 4 ++-- .../dictionary-debugging-repo-after.png | Bin 0 -> 38201 bytes .../dictionary-debugging-repo-before.png | Bin 0 -> 40720 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 release-notes/9.0/preview/preview1/dictionary-debugging-repo-after.png create mode 100644 release-notes/9.0/preview/preview1/dictionary-debugging-repo-before.png diff --git a/release-notes/9.0/preview/preview1/aspnetcore.md b/release-notes/9.0/preview/preview1/aspnetcore.md index 5023aace37..c1915c675c 100644 --- a/release-notes/9.0/preview/preview1/aspnetcore.md +++ b/release-notes/9.0/preview/preview1/aspnetcore.md @@ -22,11 +22,11 @@ The debugging display of dictionaries and other key-value collections has an imp Before: -![Prior experience debugging dictionaries.](https://github.com/dotnet/release-notes-drafts/assets/1874516/fac8289b-9e76-4de0-99ce-c043870dd027) +![Prior experience debugging dictionaries.](./dictionary-debugging-repo-before.png) After: -![New experience debugging dictionaries.](https://github.com/dotnet/release-notes-drafts/assets/1874516/52553a6d-532a-406d-bc13-91e25d1216b8) +![New experience debugging dictionaries.](./dictionary-debugging-repo-after.png) ASP.NET Core has many key-value collections. This improved debugging experience applies to: diff --git a/release-notes/9.0/preview/preview1/dictionary-debugging-repo-after.png b/release-notes/9.0/preview/preview1/dictionary-debugging-repo-after.png new file mode 100644 index 0000000000000000000000000000000000000000..35dfb1eebbb33ae030e76b625188c5043ed81cd1 GIT binary patch literal 38201 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

;T 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 E0Nq05r~m)} literal 0 HcmV?d00001 From 96bcc124d70c6879cada3dbf9bc0c3d333a3770a Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 13 Feb 2024 09:37:02 -0800 Subject: [PATCH 16/16] Update release-notes/9.0/preview/preview1/9.0.0-preview.1.md Co-authored-by: Maira Wenzel --- release-notes/9.0/preview/preview1/9.0.0-preview.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/9.0/preview/preview1/9.0.0-preview.1.md b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md index 6256f442f7..243470c69e 100644 --- a/release-notes/9.0/preview/preview1/9.0.0-preview.1.md +++ b/release-notes/9.0/preview/preview1/9.0.0-preview.1.md @@ -15,7 +15,7 @@ The latest .NET releases are always listed at [.NET Releases](../../README.md). | --------- | :------------------------------------------: | :----------------------: | :---------------------------: | :-------------------------: | :-----------------: | :-----------------: | | 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 | +| 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]