From 549391981b805dcc25409cb42bf30829d994d977 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Fri, 31 Jan 2025 09:33:28 -0800 Subject: [PATCH 01/44] Add .NET 10 P1 release note base files --- release-notes/10.0/preview/preview1/README.md | 36 +++++++++++++++++++ .../10.0/preview/preview1/aspnetcore.md | 15 ++++++++ .../10.0/preview/preview1/dotnetaspire.md | 13 +++++++ .../10.0/preview/preview1/dotnetmaui.md | 14 ++++++++ release-notes/10.0/preview/preview1/efcore.md | 13 +++++++ .../10.0/preview/preview1/libraries.md | 13 +++++++ .../10.0/preview/preview1/runtime.md | 13 +++++++ release-notes/10.0/preview/preview1/sdk.md | 13 +++++++ .../10.0/preview/preview1/winforms.md | 13 +++++++ release-notes/10.0/preview/preview1/wpf.md | 13 +++++++ 10 files changed, 156 insertions(+) create mode 100644 release-notes/10.0/preview/preview1/README.md create mode 100644 release-notes/10.0/preview/preview1/aspnetcore.md create mode 100644 release-notes/10.0/preview/preview1/dotnetaspire.md create mode 100644 release-notes/10.0/preview/preview1/dotnetmaui.md create mode 100644 release-notes/10.0/preview/preview1/efcore.md create mode 100644 release-notes/10.0/preview/preview1/libraries.md create mode 100644 release-notes/10.0/preview/preview1/runtime.md create mode 100644 release-notes/10.0/preview/preview1/sdk.md create mode 100644 release-notes/10.0/preview/preview1/winforms.md create mode 100644 release-notes/10.0/preview/preview1/wpf.md diff --git a/release-notes/10.0/preview/preview1/README.md b/release-notes/10.0/preview/preview1/README.md new file mode 100644 index 0000000000..96af37b275 --- /dev/null +++ b/release-notes/10.0/preview/preview1/README.md @@ -0,0 +1,36 @@ +# .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 released on February X, 2025. Find more information on new features released in .NET 10 Preview 1 by browsing through the release notes below: + +- [Libraries](./libraries.md) +- [Runtime](./runtime.md) +- [SDK](./sdk.md) + +## Feature Release Notes + +- [.NET Aspire](./dotnetaspire.md) +- [.NET MAUI](./dotnetmaui.md) +- [ASP.NET Core](./aspnetcore.md) +- [EF Core & Data](./efcore.md) +- [Windows Forms](./winforms.md) +- [WPF](./wpf.md) + +## Get Started + +Instructions on getting started with .NET 10 can be found in the [getting started guide](../../get-started.md). Installers and binaries for .NET 10 Preview 1 can be found [here on GitHub](./10.0.0-preview.1.md). + +## Stay up-to-date + +You can find a detailed overview of all new features in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) +- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) +- [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-10) +- [What's new in .NET Aspire](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-10) +- [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) +- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) +- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) +- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) +- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) + +The latest .NET 10 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/10.0) and [.NET 10 Releases](../../README.md). diff --git a/release-notes/10.0/preview/preview1/aspnetcore.md b/release-notes/10.0/preview/preview1/aspnetcore.md new file mode 100644 index 0000000000..05b65e07b9 --- /dev/null +++ b/release-notes/10.0/preview/preview1/aspnetcore.md @@ -0,0 +1,15 @@ +# ASP.NET Core in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new ASP.NET Core features & enhancements: + +- [Feature](#feature) + +ASP.NET Core updates in .NET 10: + +- [What's new in ASP.NET Core in .NET 10](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) documentation +- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/10.0#aspnet-core) +- [Roadmap](https://aka.ms/aspnet/roadmap) + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/dotnetaspire.md b/release-notes/10.0/preview/preview1/dotnetaspire.md new file mode 100644 index 0000000000..bfd1eca642 --- /dev/null +++ b/release-notes/10.0/preview/preview1/dotnetaspire.md @@ -0,0 +1,13 @@ +# .NET Aspire 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new .NET Aspire features & enhancements: + +- [Feature](#feature) + +.NET Aspire 10 updates: + +- [What's new in .NET Aspire in .NET 10](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-10) documentation + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/dotnetmaui.md b/release-notes/10.0/preview/preview1/dotnetmaui.md new file mode 100644 index 0000000000..6e4058fcf3 --- /dev/null +++ b/release-notes/10.0/preview/preview1/dotnetmaui.md @@ -0,0 +1,14 @@ +# .NET MAUI in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new .NET MAUI features & enhancements: + +- [Feature](#feature) +- [GitHub Release Notes](https://aka.ms/maui10p1) + +.NET MAUI updates in .NET 10: + +- [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) documentation. + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md new file mode 100644 index 0000000000..02ddbeb999 --- /dev/null +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -0,0 +1,13 @@ +# Entity Framework Core 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new Entity Framework Core features & enhancements: + +- [Feature](#feature) + +Entity Framework Core 10: + +- [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/libraries.md b/release-notes/10.0/preview/preview1/libraries.md new file mode 100644 index 0000000000..58600c0e35 --- /dev/null +++ b/release-notes/10.0/preview/preview1/libraries.md @@ -0,0 +1,13 @@ +# .NET Libraries in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new .NET Libraries features & enhancements: + +- [Feature](#feature) + +.NET Libraries updates in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/runtime.md b/release-notes/10.0/preview/preview1/runtime.md new file mode 100644 index 0000000000..faae38972d --- /dev/null +++ b/release-notes/10.0/preview/preview1/runtime.md @@ -0,0 +1,13 @@ +# .NET Runtime in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new .NET Runtime features & enhancements: + +- [Feature](#feature) + +.NET Runtime updates in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/sdk.md b/release-notes/10.0/preview/preview1/sdk.md new file mode 100644 index 0000000000..138470e3e6 --- /dev/null +++ b/release-notes/10.0/preview/preview1/sdk.md @@ -0,0 +1,13 @@ +# .NET SDK in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new .NET SDK features & enhancements: + +- [Feature](#feature) + +.NET SDK updates in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/winforms.md b/release-notes/10.0/preview/preview1/winforms.md new file mode 100644 index 0000000000..c3b0d007ad --- /dev/null +++ b/release-notes/10.0/preview/preview1/winforms.md @@ -0,0 +1,13 @@ +# Windows Forms in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new Windows Forms features & enhancements: + +- [Feature](#feature) + +Windows Forms updates in .NET 10: + +- [What's new in Windows Forms in .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net90) documentation + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/wpf.md b/release-notes/10.0/preview/preview1/wpf.md new file mode 100644 index 0000000000..9cef229377 --- /dev/null +++ b/release-notes/10.0/preview/preview1/wpf.md @@ -0,0 +1,13 @@ +# WPF in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new WPF features & enhancements: + +- [Feature](#feature) + +WPF updates in .NET 10: + +- [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) documentation + +## Feature + +This is something about the feature From 4f63adfa07311a0262cb7ed92fc2ea6b7392c9db Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Fri, 31 Jan 2025 09:39:33 -0800 Subject: [PATCH 02/44] add get started --- release-notes/10.0/get-started.md | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 release-notes/10.0/get-started.md diff --git a/release-notes/10.0/get-started.md b/release-notes/10.0/get-started.md new file mode 100644 index 0000000000..20b6ec579c --- /dev/null +++ b/release-notes/10.0/get-started.md @@ -0,0 +1,32 @@ + +# Get Started + +To get started with .NET 10, [install the .NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/10.0). + +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 Workloads + +After installing .NET 10 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: + +```console +> dotnet workload install maui +... +Successfully installed workload(s) maui. +``` + +Verify installation: + +```console +> dotnet workload list + +Installed Workload Id Manifest Version Installation Source +-------------------------------------------------------------------------------------------- +maui 10.0.0-preview.1.9973/10.0.100-preview.1 SDK 10.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 From 9a5abe8e79a09273d3da73e7551a3406e6b8d019 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Fri, 31 Jan 2025 09:44:33 -0800 Subject: [PATCH 03/44] add base binary file --- .../10.0/preview/preview1/10.0.0-preview.1.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 release-notes/10.0/preview/preview1/10.0.0-preview.1.md diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md new file mode 100644 index 0000000000..eb951f9964 --- /dev/null +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -0,0 +1,70 @@ +# .NET 10 Preview 1 Binaries + +.NET 10 Preview 1 installers and binaries can be downloaded for the following product versions: + +- `.NET 10.0.0 Preview 1` +- `.NET SDK 10.0.100-preview.1.XXXXX.X` + +See [README.md](README.md) for .NET 10 release notes and discussions. + +The latest .NET releases are always listed at [.NET Releases](../../README.md). + +## Downloads + +// To add download links + +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 +10.0.100-preview.1.XXXXX.X +``` + +## .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. + +The following repos have been updated. + +- [dotnet/sdk](https://github.com/dotnet/dotnet-docker/blob/main/README.sdk.md): .NET SDK +- [dotnet/aspnet](https://github.com/dotnet/dotnet-docker/blob/main/README.aspnet.md): ASP.NET Core Runtime +- [dotnet/runtime](https://github.com/dotnet/dotnet-docker/blob/main/README.runtime.md): .NET Runtime +- [dotnet/runtime-deps](https://github.com/dotnet/dotnet-docker/blob/main/README.runtime.md): .NET Runtime Dependencies +- [dotnet/monitor](https://github.com/dotnet/dotnet-docker/blob/main/README.monitor.md): .NET Monitor +- [dotnet/monitor/base](https://github.com/dotnet/dotnet-docker/blob/main/README.monitor-base.md): .NET Monitor Base +- [dotnet/samples](https://github.com/dotnet/dotnet-docker/blob/main/README.samples.md): .NET Samples + +## Visual Studio Compatibility + +.NET 10 is compatible with [Visual Studio 17.XX latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://dotnet.microsoft.com/download/dotnet/10.0) and install the .NET 10 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 10.0 Preview releases. + +## Feedback + +Your feedback is important and appreciated. We've created a discussion at for your questions and comments. + +## Packages updated in this release + +// Update packages here From ae8e8a67e1baac50f85d8e311a700872ef2d26a0 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Fri, 31 Jan 2025 09:47:11 -0800 Subject: [PATCH 04/44] revert links for build --- release-notes/10.0/get-started.md | 2 +- .../10.0/preview/preview1/10.0.0-preview.1.md | 2 +- release-notes/10.0/preview/preview1/README.md | 18 +++++++++--------- .../10.0/preview/preview1/aspnetcore.md | 2 +- .../10.0/preview/preview1/dotnetaspire.md | 2 +- .../10.0/preview/preview1/dotnetmaui.md | 2 +- release-notes/10.0/preview/preview1/efcore.md | 2 +- .../10.0/preview/preview1/libraries.md | 2 +- release-notes/10.0/preview/preview1/runtime.md | 2 +- release-notes/10.0/preview/preview1/sdk.md | 2 +- release-notes/10.0/preview/preview1/wpf.md | 2 +- 11 files changed, 19 insertions(+), 19 deletions(-) diff --git a/release-notes/10.0/get-started.md b/release-notes/10.0/get-started.md index 20b6ec579c..854b7d6627 100644 --- a/release-notes/10.0/get-started.md +++ b/release-notes/10.0/get-started.md @@ -1,7 +1,7 @@ # Get Started -To get started with .NET 10, [install the .NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/10.0). +To get started with .NET 10, [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.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. diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index eb951f9964..65a83fe7bb 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -59,7 +59,7 @@ The following repos have been updated. ## Visual Studio Compatibility -.NET 10 is compatible with [Visual Studio 17.XX latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://dotnet.microsoft.com/download/dotnet/10.0) and install the .NET 10 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 10.0 Preview releases. +.NET 10 is compatible with [Visual Studio 17.XX latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://dotnet.microsoft.com/download/dotnet/9.0) and install the .NET 10 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 10.0 Preview releases. ## Feedback diff --git a/release-notes/10.0/preview/preview1/README.md b/release-notes/10.0/preview/preview1/README.md index 96af37b275..dff99575ec 100644 --- a/release-notes/10.0/preview/preview1/README.md +++ b/release-notes/10.0/preview/preview1/README.md @@ -23,14 +23,14 @@ Instructions on getting started with .NET 10 can be found in the [getting starte You can find a detailed overview of all new features in .NET 10: -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) -- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) -- [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-10) -- [What's new in .NET Aspire](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-10) -- [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) +- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-13) +- [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-9) +- [What's new in .NET Aspire](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-9) +- [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) - [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) -- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) -- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) -- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) +- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) +- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net90) +- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net90) -The latest .NET 10 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/10.0) and [.NET 10 Releases](../../README.md). +The latest .NET 10 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/9.0) and [.NET 10 Releases](../../README.md). diff --git a/release-notes/10.0/preview/preview1/aspnetcore.md b/release-notes/10.0/preview/preview1/aspnetcore.md index 05b65e07b9..fad48d11a4 100644 --- a/release-notes/10.0/preview/preview1/aspnetcore.md +++ b/release-notes/10.0/preview/preview1/aspnetcore.md @@ -7,7 +7,7 @@ ASP.NET Core updates in .NET 10: - [What's new in ASP.NET Core in .NET 10](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) documentation -- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/10.0#aspnet-core) +- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/9.0#aspnet-core) - [Roadmap](https://aka.ms/aspnet/roadmap) ## Feature diff --git a/release-notes/10.0/preview/preview1/dotnetaspire.md b/release-notes/10.0/preview/preview1/dotnetaspire.md index bfd1eca642..bec0a25c15 100644 --- a/release-notes/10.0/preview/preview1/dotnetaspire.md +++ b/release-notes/10.0/preview/preview1/dotnetaspire.md @@ -6,7 +6,7 @@ .NET Aspire 10 updates: -- [What's new in .NET Aspire in .NET 10](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-10) documentation +- [What's new in .NET Aspire in .NET 10](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-9) documentation ## Feature diff --git a/release-notes/10.0/preview/preview1/dotnetmaui.md b/release-notes/10.0/preview/preview1/dotnetmaui.md index 6e4058fcf3..b5ff9665b4 100644 --- a/release-notes/10.0/preview/preview1/dotnetmaui.md +++ b/release-notes/10.0/preview/preview1/dotnetmaui.md @@ -7,7 +7,7 @@ .NET MAUI updates in .NET 10: -- [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) documentation. +- [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) documentation. ## Feature diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md index 02ddbeb999..8b2610f73c 100644 --- a/release-notes/10.0/preview/preview1/efcore.md +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -6,7 +6,7 @@ Entity Framework Core 10: -- [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation +- [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) documentation ## Feature diff --git a/release-notes/10.0/preview/preview1/libraries.md b/release-notes/10.0/preview/preview1/libraries.md index 58600c0e35..4f28fee4ab 100644 --- a/release-notes/10.0/preview/preview1/libraries.md +++ b/release-notes/10.0/preview/preview1/libraries.md @@ -6,7 +6,7 @@ .NET Libraries updates in .NET 10: -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation ## Feature diff --git a/release-notes/10.0/preview/preview1/runtime.md b/release-notes/10.0/preview/preview1/runtime.md index faae38972d..a9d96d2d6a 100644 --- a/release-notes/10.0/preview/preview1/runtime.md +++ b/release-notes/10.0/preview/preview1/runtime.md @@ -6,7 +6,7 @@ .NET Runtime updates in .NET 10: -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation ## Feature diff --git a/release-notes/10.0/preview/preview1/sdk.md b/release-notes/10.0/preview/preview1/sdk.md index 138470e3e6..46f18f330d 100644 --- a/release-notes/10.0/preview/preview1/sdk.md +++ b/release-notes/10.0/preview/preview1/sdk.md @@ -6,7 +6,7 @@ .NET SDK updates in .NET 10: -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation ## Feature diff --git a/release-notes/10.0/preview/preview1/wpf.md b/release-notes/10.0/preview/preview1/wpf.md index 9cef229377..165e12724b 100644 --- a/release-notes/10.0/preview/preview1/wpf.md +++ b/release-notes/10.0/preview/preview1/wpf.md @@ -6,7 +6,7 @@ WPF updates in .NET 10: -- [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) documentation +- [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net90) documentation ## Feature From c3c9c940ec79232b2fc1d9099f070a67d960b84d Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Fri, 31 Jan 2025 09:49:36 -0800 Subject: [PATCH 05/44] fix links --- release-notes/10.0/preview/preview1/README.md | 2 +- release-notes/10.0/preview/preview1/dotnetmaui.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/release-notes/10.0/preview/preview1/README.md b/release-notes/10.0/preview/preview1/README.md index dff99575ec..70cac3b709 100644 --- a/release-notes/10.0/preview/preview1/README.md +++ b/release-notes/10.0/preview/preview1/README.md @@ -27,8 +27,8 @@ You can find a detailed overview of all new features in .NET 10: - [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-13) - [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-9) - [What's new in .NET Aspire](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-9) +- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) - [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) -- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) - [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) - [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net90) - [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net90) diff --git a/release-notes/10.0/preview/preview1/dotnetmaui.md b/release-notes/10.0/preview/preview1/dotnetmaui.md index b5ff9665b4..fa77929f06 100644 --- a/release-notes/10.0/preview/preview1/dotnetmaui.md +++ b/release-notes/10.0/preview/preview1/dotnetmaui.md @@ -3,7 +3,7 @@ .NET 10 Preview 1 includes new .NET MAUI features & enhancements: - [Feature](#feature) -- [GitHub Release Notes](https://aka.ms/maui10p1) +- [GitHub Release Notes](https://aka.ms/maui9p1) .NET MAUI updates in .NET 10: From 1f92dd9dc36578c868779688082eda240a719250 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Fri, 31 Jan 2025 09:52:24 -0800 Subject: [PATCH 06/44] update last link --- release-notes/10.0/preview/preview1/10.0.0-preview.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index 65a83fe7bb..eadbd8a720 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -63,7 +63,7 @@ The following repos have been updated. ## Feedback -Your feedback is important and appreciated. We've created a discussion at for your questions and comments. +Your feedback is important and appreciated. We've created a discussion at for your questions and comments. ## Packages updated in this release From 3890d00f82f1c3e6aa96ad1b474304a4a87dc136 Mon Sep 17 00:00:00 2001 From: Jon Galloway Date: Fri, 31 Jan 2025 13:53:09 -0800 Subject: [PATCH 07/44] Apply suggestions from code review Co-authored-by: Rich Lander --- release-notes/10.0/get-started.md | 2 +- release-notes/10.0/preview/preview1/README.md | 23 ++++++++++--------- .../10.0/preview/preview1/aspnetcore.md | 5 ++-- .../10.0/preview/preview1/dotnetaspire.md | 3 ++- .../10.0/preview/preview1/dotnetmaui.md | 3 ++- release-notes/10.0/preview/preview1/efcore.md | 3 ++- .../10.0/preview/preview1/libraries.md | 3 ++- .../10.0/preview/preview1/runtime.md | 3 ++- release-notes/10.0/preview/preview1/sdk.md | 3 ++- .../10.0/preview/preview1/winforms.md | 3 ++- release-notes/10.0/preview/preview1/wpf.md | 3 ++- 11 files changed, 32 insertions(+), 22 deletions(-) diff --git a/release-notes/10.0/get-started.md b/release-notes/10.0/get-started.md index 854b7d6627..b023612f1c 100644 --- a/release-notes/10.0/get-started.md +++ b/release-notes/10.0/get-started.md @@ -1,7 +1,7 @@ # Get Started -To get started with .NET 10, [install the .NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0). +To get started, [install the .NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0). 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. diff --git a/release-notes/10.0/preview/preview1/README.md b/release-notes/10.0/preview/preview1/README.md index 70cac3b709..1f6257664a 100644 --- a/release-notes/10.0/preview/preview1/README.md +++ b/release-notes/10.0/preview/preview1/README.md @@ -23,14 +23,15 @@ Instructions on getting started with .NET 10 can be found in the [getting starte You can find a detailed overview of all new features in .NET 10: -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) -- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-13) -- [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-9) -- [What's new in .NET Aspire](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-9) -- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) -- [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-9.0) -- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) -- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net90) -- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net90) - -The latest .NET 10 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/9.0) and [.NET 10 Releases](../../README.md). +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) +- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) +- [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-10) +- [What's new in .NET Aspire](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-10) +- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) +- [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) +- [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) +- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) +- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) + +The latest .NET 10 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/10.0) and [.NET 10 Releases](../../README.md). + diff --git a/release-notes/10.0/preview/preview1/aspnetcore.md b/release-notes/10.0/preview/preview1/aspnetcore.md index fad48d11a4..6aa09d8119 100644 --- a/release-notes/10.0/preview/preview1/aspnetcore.md +++ b/release-notes/10.0/preview/preview1/aspnetcore.md @@ -6,10 +6,11 @@ ASP.NET Core updates in .NET 10: -- [What's new in ASP.NET Core in .NET 10](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) +- [What's new in ASP.NET Core in .NET 10](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) documentation +- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/10.0#aspnet-core) - [Roadmap](https://aka.ms/aspnet/roadmap) + ## Feature This is something about the feature diff --git a/release-notes/10.0/preview/preview1/dotnetaspire.md b/release-notes/10.0/preview/preview1/dotnetaspire.md index bec0a25c15..93d68583c4 100644 --- a/release-notes/10.0/preview/preview1/dotnetaspire.md +++ b/release-notes/10.0/preview/preview1/dotnetaspire.md @@ -6,7 +6,8 @@ .NET Aspire 10 updates: -- [What's new in .NET Aspire in .NET 10](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-9) documentation +- [What's new in .NET Aspire in .NET 10](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-10) documentation + ## Feature diff --git a/release-notes/10.0/preview/preview1/dotnetmaui.md b/release-notes/10.0/preview/preview1/dotnetmaui.md index fa77929f06..0e9f2b6269 100644 --- a/release-notes/10.0/preview/preview1/dotnetmaui.md +++ b/release-notes/10.0/preview/preview1/dotnetmaui.md @@ -7,7 +7,8 @@ .NET MAUI updates in .NET 10: -- [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9) documentation. +- [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) documentation. + ## Feature diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md index 8b2610f73c..aa5dd6ff01 100644 --- a/release-notes/10.0/preview/preview1/efcore.md +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -6,7 +6,8 @@ Entity Framework Core 10: -- [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-9.0/whatsnew) documentation +- [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation + ## Feature diff --git a/release-notes/10.0/preview/preview1/libraries.md b/release-notes/10.0/preview/preview1/libraries.md index 4f28fee4ab..a6c0ab98fd 100644 --- a/release-notes/10.0/preview/preview1/libraries.md +++ b/release-notes/10.0/preview/preview1/libraries.md @@ -6,7 +6,8 @@ .NET Libraries updates in .NET 10: -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + ## Feature diff --git a/release-notes/10.0/preview/preview1/runtime.md b/release-notes/10.0/preview/preview1/runtime.md index a9d96d2d6a..14edce23b7 100644 --- a/release-notes/10.0/preview/preview1/runtime.md +++ b/release-notes/10.0/preview/preview1/runtime.md @@ -6,7 +6,8 @@ .NET Runtime updates in .NET 10: -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + ## Feature diff --git a/release-notes/10.0/preview/preview1/sdk.md b/release-notes/10.0/preview/preview1/sdk.md index 46f18f330d..07ca3b9322 100644 --- a/release-notes/10.0/preview/preview1/sdk.md +++ b/release-notes/10.0/preview/preview1/sdk.md @@ -6,7 +6,8 @@ .NET SDK updates in .NET 10: -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-9/overview) documentation +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + ## Feature diff --git a/release-notes/10.0/preview/preview1/winforms.md b/release-notes/10.0/preview/preview1/winforms.md index c3b0d007ad..d39e40d382 100644 --- a/release-notes/10.0/preview/preview1/winforms.md +++ b/release-notes/10.0/preview/preview1/winforms.md @@ -6,7 +6,8 @@ Windows Forms updates in .NET 10: -- [What's new in Windows Forms in .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net90) documentation +- [What's new in Windows Forms in .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) documentation + ## Feature diff --git a/release-notes/10.0/preview/preview1/wpf.md b/release-notes/10.0/preview/preview1/wpf.md index 165e12724b..46295f928b 100644 --- a/release-notes/10.0/preview/preview1/wpf.md +++ b/release-notes/10.0/preview/preview1/wpf.md @@ -6,7 +6,8 @@ WPF updates in .NET 10: -- [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net90) documentation +- [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) documentation + ## Feature From 00422a63a6748973a694997fc07dc74a79dd3750 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Thu, 6 Feb 2025 08:17:08 -0800 Subject: [PATCH 08/44] Fix linter errors --- release-notes/10.0/get-started.md | 2 +- release-notes/10.0/preview/preview1/README.md | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/release-notes/10.0/get-started.md b/release-notes/10.0/get-started.md index b023612f1c..2e459d5622 100644 --- a/release-notes/10.0/get-started.md +++ b/release-notes/10.0/get-started.md @@ -29,4 +29,4 @@ Installed Workload Id Manifest Version Installat maui 10.0.0-preview.1.9973/10.0.100-preview.1 SDK 10.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 +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. diff --git a/release-notes/10.0/preview/preview1/README.md b/release-notes/10.0/preview/preview1/README.md index 1f6257664a..aa89e2c15b 100644 --- a/release-notes/10.0/preview/preview1/README.md +++ b/release-notes/10.0/preview/preview1/README.md @@ -34,4 +34,3 @@ You can find a detailed overview of all new features in .NET 10: - [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) The latest .NET 10 release is always available at [dotnet.microsoft.com](https://dotnet.microsoft.com/download/dotnet/10.0) and [.NET 10 Releases](../../README.md). - From 89b56fa7ee56ceec1f063e0029419abcaa4673f3 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 11 Feb 2025 12:09:47 -0800 Subject: [PATCH 09/44] add languages --- release-notes/10.0/preview/preview1/csharp.md | 14 ++++++++++++++ release-notes/10.0/preview/preview1/fsharp.md | 13 +++++++++++++ .../10.0/preview/preview1/visualbasic.md | 19 +++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 release-notes/10.0/preview/preview1/csharp.md create mode 100644 release-notes/10.0/preview/preview1/fsharp.md create mode 100644 release-notes/10.0/preview/preview1/visualbasic.md diff --git a/release-notes/10.0/preview/preview1/csharp.md b/release-notes/10.0/preview/preview1/csharp.md new file mode 100644 index 0000000000..79100883eb --- /dev/null +++ b/release-notes/10.0/preview/preview1/csharp.md @@ -0,0 +1,14 @@ +# C# 14 updates in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes the following C# features & enhancements: + +- [Feature](#feature) + +C# 14 updates: + +- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) documentation +- [Breaking changes in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/breaking-changes/compiler%20breaking%20changes%20-%20dotnet%2010) + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/fsharp.md b/release-notes/10.0/preview/preview1/fsharp.md new file mode 100644 index 0000000000..e88d57a3f8 --- /dev/null +++ b/release-notes/10.0/preview/preview1/fsharp.md @@ -0,0 +1,13 @@ +# F# 10 updates in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes the following F# features & enhancements: + +- [Feature](#feature) + +F# 10 updates: + +- [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-10) documentation + +## Feature + +This is something about the feature diff --git a/release-notes/10.0/preview/preview1/visualbasic.md b/release-notes/10.0/preview/preview1/visualbasic.md new file mode 100644 index 0000000000..bdbfc51215 --- /dev/null +++ b/release-notes/10.0/preview/preview1/visualbasic.md @@ -0,0 +1,19 @@ +# Visual Basic updates in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes the following Visual Basic features & enhancements: + +- [`unmanaged` constraint support](#unmanaged-constraint-support) +- [Honor overload resolution priority](#honor-overload-resolution-priority) + +Visual Basic updates: + +- [What's new in Visual Basic](https://learn.microsoft.com/dotnet/visual-basic/whats-new/) documentation +- [Breaking changes](https://learn.microsoft.com/dotnet/visual-basic/whats-new/breaking-changes) + +## `unmanaged` constraint support + +This is something about the feature/change and a link to the documetnation + +## Honor overload resolution priority + +This is something about the feature/change and a link to the documetnation From 8bcfa996a0509198c7eafbf435de6daaf43f08bc Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 11 Feb 2025 12:25:59 -0800 Subject: [PATCH 10/44] add ef core 10 documentation --- release-notes/10.0/preview/preview1/efcore.md | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md index aa5dd6ff01..ea68a35c8c 100644 --- a/release-notes/10.0/preview/preview1/efcore.md +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -2,13 +2,34 @@ .NET 10 Preview 1 includes new Entity Framework Core features & enhancements: -- [Feature](#feature) +- [ExecuteUpdateAsync now accepts a regular, non-expression lambda](#executeupdateasync-now-accepts-a-regular-non-expression-lambda) +- [Several query improvements](#query-improvements) -Entity Framework Core 10: +Entity Framework Core 10 updates: - [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation +- [Breaking change in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/breaking-changes) -## Feature +## ExecuteUpdateAsync now accepts a regular, non-expression lambda -This is something about the feature +Creating expresion trees can be verbose, and now you can use regular, non-expression lambdas when calling `ExecuteUpdateAsync`: + +```c# +await context.Blogs.ExecuteUpdateAsync(s => +{ + s.SetProperty(b => b.Views, 8); + if (nameChanged) + { + s.SetProperty(b => b.Name, "foo"); + } +}); +``` + +Thanks to [@aradalvand](https://github.com/aradalvand) for proposing and pushing for this change (in [#32018](https://github.com/dotnet/efcore/issues/32018)). + +## Query improvements + +- Translation for DateOnly.ToDateTime(timeOnly) ([#35194](https://github.com/dotnet/efcore/pull/35194), contributed by [@mseada94](https://github.com/mseada94)). +- Optimization for multiple consecutive `LIMIT`s ([#35384](https://github.com/dotnet/efcore/pull/35384)), contributed by [@ranma42](https://github.com/ranma42)). +- Optimization for use of `Count` operation on `ICollection` ([#35381](https://github.com/dotnet/efcore/pull/35381)), contributed by [@ChrisJollyAU](https://github.com/ChrisJollyAU)). From 385043f9ab48a94f86e2fe461af4048ab2c275fa Mon Sep 17 00:00:00 2001 From: maumar Date: Wed, 12 Feb 2025 02:01:11 +0100 Subject: [PATCH 11/44] add more efcore release notes --- release-notes/10.0/preview/preview1/efcore.md | 61 +++++++++++++++++-- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md index ea68a35c8c..8ad1dd0bd6 100644 --- a/release-notes/10.0/preview/preview1/efcore.md +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -2,14 +2,55 @@ .NET 10 Preview 1 includes new Entity Framework Core features & enhancements: +- [Support for the .NET 10 LeftJoin operator](#support-for-left-join) - [ExecuteUpdateAsync now accepts a regular, non-expression lambda](#executeupdateasync-now-accepts-a-regular-non-expression-lambda) -- [Several query improvements](#query-improvements) +- [Several small improvements](#small-improvements) Entity Framework Core 10 updates: - [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation - [Breaking change in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/breaking-changes) + + +## Support for the .NET 10 LeftJoin operator + +`LEFT JOIN` is a common and useful operation when working with EF Core. In previous versions, implementing `LEFT JOIN` in LINQ was quite complicated, requiring `SelectMany`, `GroupJoin` and `DefaultIfEmpty` operations in a particular configuration: + +```C# +var query = students + .GroupJoin( + departments, + student => student.DepartmentID, + department => department.ID, + (student, departmentList) => new { student, subgroup = departmentList }) + .SelectMany( + joinedSet => joinedSet.subgroup.DefaultIfEmpty(), + (student, department) => new + { + student.student.FirstName, + student.student.LastName, + Department = department?.Name ?? "[NONE]" + }); +``` + +.NET 10 adds first-class LINQ support for `LeftJoin` method to make those queries much simpler to write. EF Core recognizes the new method, so it can be used in EF LINQ queries instead of the old construct: + +```C# +var query = students + .LeftJoin( + departments, + student => student.DepartmentID, + department => department.ID, + (student, departmentList) => new + { + student.student.FirstName, + student.student.LastName, + Department = department?.Name ?? "[NONE]" + }); +``` + +See [#12793](https://github.com/dotnet/efcore/issues/12793) for more details. ## ExecuteUpdateAsync now accepts a regular, non-expression lambda @@ -28,8 +69,20 @@ await context.Blogs.ExecuteUpdateAsync(s => Thanks to [@aradalvand](https://github.com/aradalvand) for proposing and pushing for this change (in [#32018](https://github.com/dotnet/efcore/issues/32018)). -## Query improvements +## Small improvements - Translation for DateOnly.ToDateTime(timeOnly) ([#35194](https://github.com/dotnet/efcore/pull/35194), contributed by [@mseada94](https://github.com/mseada94)). -- Optimization for multiple consecutive `LIMIT`s ([#35384](https://github.com/dotnet/efcore/pull/35384)), contributed by [@ranma42](https://github.com/ranma42)). -- Optimization for use of `Count` operation on `ICollection` ([#35381](https://github.com/dotnet/efcore/pull/35381)), contributed by [@ChrisJollyAU](https://github.com/ChrisJollyAU)). +- Optimization for multiple consecutive `LIMIT`s ([#35384](https://github.com/dotnet/efcore/pull/35384), contributed by [@ranma42](https://github.com/ranma42)). +- Optimization for use of `Count` operation on `ICollection` ([#35381](https://github.com/dotnet/efcore/pull/35381), contributed by [@ChrisJollyAU](https://github.com/ChrisJollyAU)). +- Optimization for `MIN`/`MAX` over `DISTINCT` ([#34699](https://github.com/dotnet/efcore/pull/34699), contributed by [@ranma42](https://github.com/ranma42)). +- Make SQL Server scaffolding compatible with Azure Data Explorer ([#34832](https://github.com/dotnet/efcore/pull/34832), contributed by [@barnuri](https://github.com/barnuri)). +- Translation for date/time functions using `DatePart.Microsecond` and `DatePart.Nanosecond` arguments ([#34861](https://github.com/dotnet/efcore/pull/34861)). +- Simplifying parameter names (e.g. from `@__city_0` to `city`) ([#35200](https://github.com/dotnet/efcore/pull/35200)). + +## Everything else in Preview 1 + +Preview 1 contains: + +- [18 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-1%20(milestone%3A9.0.1%20OR%20milestone%3A9.0.2%20OR%20milestone%3A9.0.3%20OR%20milestone%3A10.0.0)%20label%3Atype-enhancement) +- [14 regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-1%20label%3Atype-bug%20(milestone%3A9.0.1%20OR%20milestone%3A9.0.2%20OR%20milestone%3A9.0.3%20OR%20milestone%3A10.0.0)%20label%3Aregression) +- [28 non-regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-1%20label%3Atype-bug%20(milestone%3A9.0.1%20OR%20milestone%3A9.0.2%20OR%20milestone%3A9.0.3%20OR%20milestone%3A10.0.0)%20-label%3Aregression%20) \ No newline at end of file From 92c8fef91e7d85d4d6fa93c804b955b58568473b Mon Sep 17 00:00:00 2001 From: maumar Date: Wed, 12 Feb 2025 02:25:19 +0100 Subject: [PATCH 12/44] fix lint issue in ef docs --- release-notes/10.0/preview/preview1/efcore.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md index 8ad1dd0bd6..4db9428ebc 100644 --- a/release-notes/10.0/preview/preview1/efcore.md +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -2,7 +2,7 @@ .NET 10 Preview 1 includes new Entity Framework Core features & enhancements: -- [Support for the .NET 10 LeftJoin operator](#support-for-left-join) +- [Support for the .NET 10 LeftJoin operator](#support-for-the-net-10-leftjoin-operator) - [ExecuteUpdateAsync now accepts a regular, non-expression lambda](#executeupdateasync-now-accepts-a-regular-non-expression-lambda) - [Several small improvements](#small-improvements) @@ -11,8 +11,6 @@ Entity Framework Core 10 updates: - [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation - [Breaking change in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/breaking-changes) - - ## Support for the .NET 10 LeftJoin operator `LEFT JOIN` is a common and useful operation when working with EF Core. In previous versions, implementing `LEFT JOIN` in LINQ was quite complicated, requiring `SelectMany`, `GroupJoin` and `DefaultIfEmpty` operations in a particular configuration: From e992c1828e59dc5ff9cbe66034caa028553ceb98 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 12 Feb 2025 11:41:06 -0800 Subject: [PATCH 13/44] update efcore --- release-notes/10.0/preview/preview1/efcore.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md index 4db9428ebc..59825d2906 100644 --- a/release-notes/10.0/preview/preview1/efcore.md +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -83,4 +83,4 @@ Preview 1 contains: - [18 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-1%20(milestone%3A9.0.1%20OR%20milestone%3A9.0.2%20OR%20milestone%3A9.0.3%20OR%20milestone%3A10.0.0)%20label%3Atype-enhancement) - [14 regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-1%20label%3Atype-bug%20(milestone%3A9.0.1%20OR%20milestone%3A9.0.2%20OR%20milestone%3A9.0.3%20OR%20milestone%3A10.0.0)%20label%3Aregression) -- [28 non-regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-1%20label%3Atype-bug%20(milestone%3A9.0.1%20OR%20milestone%3A9.0.2%20OR%20milestone%3A9.0.3%20OR%20milestone%3A10.0.0)%20-label%3Aregression%20) \ No newline at end of file +- [28 non-regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-1%20label%3Atype-bug%20(milestone%3A9.0.1%20OR%20milestone%3A9.0.2%20OR%20milestone%3A9.0.3%20OR%20milestone%3A10.0.0)%20-label%3Aregression%20) From 2d694c9e32c6bc2083a25173f09a9d12968b2a5a Mon Sep 17 00:00:00 2001 From: Kathleen Dollard Date: Thu, 13 Feb 2025 08:12:18 -0800 Subject: [PATCH 14/44] Preview 1 F# release notes (#9737) * Initial F# entry with links-needs cleanup * Remove template comments from F# release notes * Apply suggestions from code review Thanks! All these changes are great. Co-authored-by: Tomas Grosup * a bit of consistency here to jump down layers * Fix typo in F# release notes --------- Co-authored-by: Tomas Grosup Co-authored-by: James Montemagno --- release-notes/10.0/preview/preview1/fsharp.md | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/release-notes/10.0/preview/preview1/fsharp.md b/release-notes/10.0/preview/preview1/fsharp.md index e88d57a3f8..5a9527d500 100644 --- a/release-notes/10.0/preview/preview1/fsharp.md +++ b/release-notes/10.0/preview/preview1/fsharp.md @@ -1,13 +1,23 @@ -# F# 10 updates in .NET 10 Preview 1 - Release Notes +# F# updates in .NET 10 Preview 1 - Release Notes -.NET 10 Preview 1 includes the following F# features & enhancements: +.NET 10 Preview 1 includes the following F# features & enhancements: -- [Feature](#feature) +- [F# Language](#f-language) +- [FSharp.Core standard library](#fsharpcore-standard-library) +- [FSharp.Compiler.Service](#fsharpcompilerservice) -F# 10 updates: +> Note: Release notes for F# are generated for all contributions to the [dotnet/fsharp](https://github.com/dotnet/fsharp) repository and split across language, library and compiler changes. -- [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-10) documentation +## F# Language -## Feature +[Release notes for new F# language features](https://fsharp.github.io/fsharp-compiler-docs/release-notes/Language.html) list language changes that have to be enabled by `preview` project property in `.fsproj` project file. They will become the default with .NET 10 release. -This is something about the feature + +## FSharp.Core Standard Library + +[Changes to the FSharp.Core standard library](https://fsharp.github.io/fsharp-compiler-docs/release-notes/FSharp.Core.html) are applied automatically to projects compiled with new SDK, unless they pin down a lower FSharp.Core version. + + +## FSharp.Compiler.Service + +General improvements and bugfixes in the compiler implementation are at [Release notes for FSharp.Compiler.Service](https://fsharp.github.io/fsharp-compiler-docs/release-notes/FSharp.Compiler.Service.html). From 82863e7fe4be8dcb319839d170f8c1097f8138f3 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Thu, 13 Feb 2025 08:35:16 -0800 Subject: [PATCH 15/44] Update release-notes/10.0/get-started.md Co-authored-by: Jon Galloway --- release-notes/10.0/get-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/get-started.md b/release-notes/10.0/get-started.md index 2e459d5622..5c22b9d8ee 100644 --- a/release-notes/10.0/get-started.md +++ b/release-notes/10.0/get-started.md @@ -1,7 +1,7 @@ # Get Started -To get started, [install the .NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0). +To get started, [install the .NET 10 SDK](https:/get.dot.net/10). 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. From 18386c0881a2f9303f6239affb0a8e9790af70f7 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Thu, 13 Feb 2025 08:35:24 -0800 Subject: [PATCH 16/44] Update release-notes/10.0/preview/preview1/10.0.0-preview.1.md Co-authored-by: Jon Galloway --- release-notes/10.0/preview/preview1/10.0.0-preview.1.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index eadbd8a720..4ff174a248 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -59,7 +59,8 @@ The following repos have been updated. ## Visual Studio Compatibility -.NET 10 is compatible with [Visual Studio 17.XX latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://dotnet.microsoft.com/download/dotnet/9.0) and install the .NET 10 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 10.0 Preview releases. +.NET 10 is compatible with [Visual Studio 17.XX latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://get.dot.net/10) and install the .NET 10 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 10.0 Preview releases. + ## Feedback From 5d25d281f204f208de48ef38aad9589c999ee65b Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Thu, 13 Feb 2025 08:37:48 -0800 Subject: [PATCH 17/44] update wpf --- release-notes/10.0/preview/preview1/wpf.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/release-notes/10.0/preview/preview1/wpf.md b/release-notes/10.0/preview/preview1/wpf.md index 46295f928b..939191fd97 100644 --- a/release-notes/10.0/preview/preview1/wpf.md +++ b/release-notes/10.0/preview/preview1/wpf.md @@ -1,14 +1,9 @@ # WPF in .NET 10 Preview 1 - Release Notes -.NET 10 Preview 1 includes new WPF features & enhancements: +This release was focused on quality improvements to WPF. You can find detailed information about the improvements in the GitHub Release below: -- [Feature](#feature) +- [WPFGitHub Release Notes](https://github.com/dotnet/wpf/releases) WPF updates in .NET 10: - [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) documentation - - -## Feature - -This is something about the feature From 8d41e777843fded0d6e0157a85f56f703f912973 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Fri, 14 Feb 2025 13:13:25 -0500 Subject: [PATCH 18/44] C# and VB release notes for Preview 1 (#9739) * First draft of C# and VB release notes * Apply suggestions from code review Co-authored-by: Martin Costello * Update release-notes/10.0/preview/preview1/visualbasic.md Co-authored-by: Kathleen Dollard * Add additional features My first draft had missed a few features. * Apply suggestions from code review Co-authored-by: Kathleen Dollard * Update release-notes/10.0/preview/preview1/csharp.md --------- Co-authored-by: Martin Costello Co-authored-by: James Montemagno Co-authored-by: Kathleen Dollard --- release-notes/10.0/preview/preview1/csharp.md | 33 +++++++++++++++++-- .../10.0/preview/preview1/visualbasic.md | 7 ++-- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/release-notes/10.0/preview/preview1/csharp.md b/release-notes/10.0/preview/preview1/csharp.md index 79100883eb..da6fa0ec57 100644 --- a/release-notes/10.0/preview/preview1/csharp.md +++ b/release-notes/10.0/preview/preview1/csharp.md @@ -2,13 +2,40 @@ .NET 10 Preview 1 includes the following C# features & enhancements: -- [Feature](#feature) +- [`nameof` in unbound generics](#unbound-generic-support-for-nameof) +- [Implicit span conversions](#implicit-span-conversions) +- [`field` backed properties](#field-backed-properties) +- [Modifiers on simple lambda parameters](#modifiers-on-simple-lambda-parameters) +- [Experimental feature - String literals in data section](#preview-feature-string-literals-in-data-section) + C# 14 updates: - [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) documentation - [Breaking changes in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/breaking-changes/compiler%20breaking%20changes%20-%20dotnet%2010) -## Feature +## Field-backed properties + +Field-backed properties provide a smoother path from auto-implemented properties to writing your own `get` and `set` accessors. You can access the compiler-generated backing field using the `field` contextual keyword in a `get` or `set` accessor. You can learn more about this feature in the article on the new [`field` keyword](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/field). + +## Unbound generic support for `nameof` + +The argument to a `nameof` expression can be an unbound generic type, like `List<>`. The result of the expression is "List". Previously, you'd need to supply a type argument for each type parameter. You can learn more in our docs on the [`nameof`](https://learn.microsoft.com/dotnet/csharp/language-reference/operators/nameof) expression. + +## Implicit Span conversions + +C# 14 introduces first-class support for `Span` and `ReadOnlySpan` in the language. `Span` and `ReadOnlySpan` are used in many key ways in C# and the runtime. This support involves new implicit conversions allowing more natural programming with these types. + +You can learn more in the article on [built-in types](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/built-in-types.md) in the C# guide. + +## Modifiers on simple lambda parameters + +You can add parameter modifiers, such as `ref`, `in`, or `out` to lambda expressions without specifying the type of the parameters. This makes it easier for you to use these modifiers. You can learn more in the article on [lambda expressions](https://learn.microsoft.com/dotnet/csharp/language-reference/operators/lambda-expressions.md#input-parameters-of-a-lambda-expression) in the C# language reference. + +## Experimental feature: String literals in data section + + +This opt-in experimental feature allows changing how string literals in C# programs are emitted into PE files. By turning on the feature flag, string literals (where possible) are emitted as UTF-8 data into a different section of the PE file without a data limit. The emit format is similar to explicit UTF-8 string literals. + -This is something about the feature +You can learn more by reading the feature [documentation](https://github.com/dotnet/roslyn/blob/main/docs/features/string-literals-data-section.md). diff --git a/release-notes/10.0/preview/preview1/visualbasic.md b/release-notes/10.0/preview/preview1/visualbasic.md index bdbfc51215..1a432a0e2a 100644 --- a/release-notes/10.0/preview/preview1/visualbasic.md +++ b/release-notes/10.0/preview/preview1/visualbasic.md @@ -5,6 +5,9 @@ - [`unmanaged` constraint support](#unmanaged-constraint-support) - [Honor overload resolution priority](#honor-overload-resolution-priority) +These features are part of our strategy to ensure that Visual Basic can consume updated features in C# and the runtime. These features won't change how you write Visual Basic code, you'll just find it easier to use the latest runtime APIs. + + Visual Basic updates: - [What's new in Visual Basic](https://learn.microsoft.com/dotnet/visual-basic/whats-new/) documentation @@ -12,8 +15,8 @@ Visual Basic updates: ## `unmanaged` constraint support -This is something about the feature/change and a link to the documetnation +C# added the `unmanaged` generic constraint. The Visual Basic compiler now interprets that constraint and enforces it. Previously, the Visual Basic compiler issues an error if you access a type parameter with the `unmanaged` constraint. You can learn more in the article on [generic types](https://learn.microsoft.com//dotnet/visual-basic/programming-guide/language-features/data-types/generic-types#types-of-constraints) in the Visual Basic documentation. ## Honor overload resolution priority -This is something about the feature/change and a link to the documetnation +The Visual Basic compiler now respects the [`OverloadResolutionPriorityAttribute`](https://learn.microsoft.com/dotnet/api/system.runtime.compilerservices.overloadresolutionpriorityattribute) used to resolve ambiguities among method overloads. This feature means that new, faster Span-based overloads are preferred by the VB compiler. Without this, VB would either get a slower overload, or have an ambiguity. You can learn how it works in the article on [overload resolution](https://learn.microsoft.com/dotnet/visual-basic/programming-guide/language-features/procedures/overload-resolution) From b74d1804672914381e7efece3230f52e2be2f195 Mon Sep 17 00:00:00 2001 From: Merrie McGaw Date: Tue, 18 Feb 2025 10:14:27 -0800 Subject: [PATCH 19/44] .NET 10 Preview 1 - WinForms Release Notes (#9722) * First draft First draft of release nites * Added AI message I did use AI to translate to markdown from docx formats. * Update release-notes/10.0/preview/preview1/winforms.md Co-authored-by: Loni Tra * Applying feedback Applying the latest feedback and correcting a couple mistakes. * Applying final feedback Adding a few tweaks based on Tanya's feedback. * Best Practices * Final round of feedback * Update release-notes/10.0/preview/preview1/winforms.md * a bit of cleanup * Update winforms.md Duplicated text. * duplicated content --------- Co-authored-by: Loni Tra Co-authored-by: Rich Lander Co-authored-by: Rich Lander Co-authored-by: Tanya Solyanik Co-authored-by: James Montemagno --- .../10.0/preview/preview1/winforms.md | 98 ++++++++++++++++++- 1 file changed, 93 insertions(+), 5 deletions(-) diff --git a/release-notes/10.0/preview/preview1/winforms.md b/release-notes/10.0/preview/preview1/winforms.md index d39e40d382..2603394a55 100644 --- a/release-notes/10.0/preview/preview1/winforms.md +++ b/release-notes/10.0/preview/preview1/winforms.md @@ -2,13 +2,101 @@ .NET 10 Preview 1 includes new Windows Forms features & enhancements: -- [Feature](#feature) +- [Clipboard related serialization and deserialization changes](#clipboard-related-serialization-and-deserialization-changes) +- [Obsoleted Clipboard APIs](#obsoleted-clipboard-apis) +- [New Clipboard related APIs](#new-clipboard-related-apis) -Windows Forms updates in .NET 10: +## Windows Forms updates in .NET 10 -- [What's new in Windows Forms in .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) documentation +- [What's new in Windows Forms in .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) documentation. +- [Issues List for Windows Forms in .NET 10 Preview 1](https://github.com/dotnet/winforms/issues?q=is%3Aissue%20milestone%3A%2210.0%20Preview1%22%20) +## Clipboard related serialization and deserialization changes -## Feature +WinForms continues to ease the pain of migrating away from BinaryFormatter in .NET 10 Preview 1 by simplifying Clipboard serialization for certain custom types. In .NET 9, calls to BinaryFormatter to perform serialization were updated to throw `PlatformNotSupportedException` if the developer did not reference an unsupported compatibility package and enable BinaryFormatter via an application configuration switch ([see more](https://learn.microsoft.com/dotnet/standard/serialization/binaryformatter-migration-guide/compatibility-package)). Clipboard and Drag/Drop scenarios which use custom types, as of .NET 9, require the developer to either enable BinaryFormatter or explicitly take action to use JSON serialization (or similar) to succeed. For additional details about migrating WinForms application away from `BinaryFormatter` see the [Windows Forms migration guide for BinaryFormatter](https://learn.microsoft.com/dotnet/standard/serialization/binaryformatter-migration-guide/winforms-applications). In .NET 10 Preview 1 WinForms is adding several APIs to enable developers to more easily use JSON serliaization in while using the Clipboard. Additionally, developers can now more easily specify expected types when getting data from the Clipboard. -This is something about the feature +For in-depth discussion of the APIs involved, and usage examples, please see the original [API Proposal](https://github.com/dotnet/winforms/issues/12362) in the WinForms repo. + +## Obsoleted Clipboard APIs + +In .NET 10, WinForms has marked as obsolete the following APIs to help warn developers that BinaryFormatter may be used to deserialize data. + +**Clipboard:** + +- `public static object? GetData(string format)` + +**DataObject:** + +- `public virtual object? GetData(string format)` +- `public virtual object? GetData(string format, bool autoConvert)` +- `public virtual object? GetData(Type format)` + +**ClipboardProxy (VisualBasic wrapper for WinForms Clipboard):** + +- `public object GetData(string format)` + +## New Clipboard related APIs + +We’ve introduced the following APIs in Windows Forms for .NET 10 Preview 1: + +**Clipboard:** + +- `public static void SetDataAsJson(string format, T data)` +- `public static bool TryGetData(string format, out T data)` +- `public static bool TryGetData(string format, Func resolver, out T data)` + +**DataObject:** + +- `public void SetDataAsJson(T data)` +- `public void SetDataAsJson(string format, T data)` +- `public void SetDataAsJson(string format, bool autoConvert, T data)` +- `public bool TryGetData(out T data);` +- `public bool TryGetData(string format, out T data);` +- `public bool TryGetData(string format, bool autoConvert, out T data);` +- `public bool TryGetData(string format, Func resolver, bool autoConvert, out T data);` +- `protected virtual bool TryGetDataCore(string format, Func resolver, bool autoConvert, out T data)` + +**ITypedDataObject:** + +- `public bool TryGetData(out T data);` +- `public bool TryGetData(string format, out T data);` +- `public bool TryGetData(string format, bool autoConvert, out T data);` +- `public bool TryGetData(string format, Func resolver, bool autoConvert, out T data);` + +**DataObjectExtensions:** + +- `public static bool TryGetData(this IDataObject dataObject, out T data)` +- `public static bool TryGetData(this IDataObject dataObject, string format, out T data)` +- `public static bool TryGetData(this IDataObject dataObject, string format, bool autoConvert, out T data)` +- `public static bool TryGetData(this IDataObject dataObject, string format, Func resolver, bool autoConvert, out T data)` + +**ClipboardProxy:** + +- `public void SetDataAsJson(T data)` +- `public void SetDataAsJson(string format, T data)` +- `public bool TryGetData(string format, out T data)` +- `public bool TryGetData(string format, Func resolver, out T data)` + +**New Clipboard compatibility configuration switch** + +- `Windows.ClipboardDragDrop.EnableUnsafeBinaryFormatterSerialization` + +## Considerations for BinaryFormatter usage with the Clipboard + +### Scenarios that work without any added reference to BinaryFormatter + +Applications that use the new .NET Clipboard APIs for standard data types or explicitly use JSON serialization will work without needing any reference to `BinaryFormatter`. For instance, the new APIs like `SetDataAsJson` and `TryGetData` are designed to handle common .NET types such as primitive types and `System.Drawing.Bitmap` without relying on `BinaryFormatter`. These APIs ensure type safety and provide mechanisms to constrain incoming data, making them suitable for most scenarios where data exchange is straightforward and does not involve complex types. Serialization using these methods is considered best practice, and developers are strongly encouraged to move in this direction. + +### Scenarios that require a reference to BinaryFormatter + +For applications that still rely on `BinaryFormatter` for custom format serialization or need to maintain complete compatibility with .NET Framework applications, a reference to the out-of-band, unsupported `System.Runtime.Serialization.Formatters` package and the corresponding AppContext switch is required as detailed [here](https://learn.microsoft.com/en-us/dotnet/standard/serialization/binaryformatter-migration-guide/compatibility-package). This is particularly necessary for scenarios where complex types are involved, and the application cannot migrate to the new JSON-based APIs. In such cases, developers must explicitly opt-in to enable BinaryFormatter serialization and deserialization by setting the `Windows.ClipboardDragDrop.EnableUnsafeBinaryFormatterSerialization` switch to `true` in the configuration file in addition to `System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization` switch to `true`. The advantage to this approach is that `BinaryFormatter` can be explicitly disabled for Clipboard scenarios, while still being allowed in other parts of the application. This ensures that the application can continue to function while gradually transitioning to safer alternatives. + +## Best practices to consider when migrating to the new Clipboard APIs + +1. *Replace obsolete APIs* Start by replacing the obsolete `GetData` methods with the new `TryGetData`. This ensures type safety and avoids the risks associated with unbounded deserialization. +1. *Use JSON Serialization:* For complex types, use JSON serialization instead of BinaryFormatter. The new APIs like `SetDataAsJson` and `TryGetData` are designed to handle common .NET types and JSON serialization. +1. *Constrain incoming data:* The new APIs provide ways to ensure that only expected types are deserialized, reducing the risk of deserialization attacks. +1. *Opt-In only for compatibility:* If your application still relies on `BinaryFormatter` for custom format serialization or needs to maintain compatibility with .NET Framework applications, use the configuration switch to enable BinaryFormatter serialization and deserialization. This should be done cautiously and only when necessary. Separately enable BinaryFormatter support during Clipboard serialization and dersialization with the new configuration switch. +1. *Use simple types for data exchange:* Re-design your application to use simple types that have no inheritance hierarchies and have only primitive types as data fields. + +> Note: **AI-assisted content.** This article was partially created with the help of AI. An author reviewed and revised the content as needed. [Learn more](https://devblogs.microsoft.com/principles-for-ai-generated-content/) From ace14291248de8fbbd69aa1482165821a83d7174 Mon Sep 17 00:00:00 2001 From: maumar Date: Tue, 18 Feb 2025 19:51:46 +0100 Subject: [PATCH 20/44] small tweaks to ef preview 1 release notes --- release-notes/10.0/preview/preview1/efcore.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md index 59825d2906..bc74b31483 100644 --- a/release-notes/10.0/preview/preview1/efcore.md +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -32,7 +32,7 @@ var query = students }); ``` -.NET 10 adds first-class LINQ support for `LeftJoin` method to make those queries much simpler to write. EF Core recognizes the new method, so it can be used in EF LINQ queries instead of the old construct: +.NET 10 adds first-class LINQ support for `LeftJoin` method, making those queries much simpler to write. EF Core recognizes the new method, so it can be used in EF LINQ queries instead of the old construct: ```C# var query = students @@ -40,11 +40,11 @@ var query = students departments, student => student.DepartmentID, department => department.ID, - (student, departmentList) => new + (student, department) => new { - student.student.FirstName, - student.student.LastName, - Department = department?.Name ?? "[NONE]" + student.FirstName, + student.LastName, + Department = department.Name ?? "[NONE]" }); ``` From 72a7eec65059bf91facb8ad97ce1fc5b34bc12e8 Mon Sep 17 00:00:00 2001 From: maumar Date: Tue, 18 Feb 2025 19:54:14 +0100 Subject: [PATCH 21/44] one more tiny tweak to ef core notes --- release-notes/10.0/preview/preview1/efcore.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/efcore.md b/release-notes/10.0/preview/preview1/efcore.md index bc74b31483..c4281b038e 100644 --- a/release-notes/10.0/preview/preview1/efcore.md +++ b/release-notes/10.0/preview/preview1/efcore.md @@ -28,7 +28,7 @@ var query = students { student.student.FirstName, student.student.LastName, - Department = department?.Name ?? "[NONE]" + Department = department.Name ?? "[NONE]" }); ``` From 240da681893a2124686e146fff03836f1cc0bdaa Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Tue, 18 Feb 2025 16:39:48 -0500 Subject: [PATCH 22/44] release notes for PrunePackageReferences (#9744) --- release-notes/10.0/preview/preview1/sdk.md | 30 ++++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/release-notes/10.0/preview/preview1/sdk.md b/release-notes/10.0/preview/preview1/sdk.md index 07ca3b9322..6b1244bc20 100644 --- a/release-notes/10.0/preview/preview1/sdk.md +++ b/release-notes/10.0/preview/preview1/sdk.md @@ -1,14 +1,16 @@ -# .NET SDK in .NET 10 Preview 1 - Release Notes - -.NET 10 Preview 1 includes new .NET SDK features & enhancements: - -- [Feature](#feature) - -.NET SDK updates in .NET 10: - -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation - - -## Feature - -This is something about the feature +# .NET SDK in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new .NET SDK features & enhancements: + +- [Pruning of Framework-provided Package References](#pruning-of-framework-provided-package-references) + +## Pruning of Framework-provided Package References + +Starting in .NET 10, the [NuGet Audit][nuget-audit] feature can now [prune framework-provided package references][prune-package-references-spec] that are not used by the project. This feature will be enabled by default for all .NET TargetFrameworks (e.g. `net8.0`, `net10.0`) and .NET Standard 2.0 and greater TargetFrameworks. This change will help reduce the number of packages that are restored and analyzed during the build process, which can lead to faster build times and reduced disk space usage. It also can lead to a reduction in false positives from NuGet Audit and other dependency-scanning mechanisms. + +When this feature is enabled, you should see a marked reduction in the contents of your applications' generated `.deps.json` files - any PackageReferences you may have had that are actually being supplied by the .NET Runtime you use will be automatically removed from the generated dependency file. + +While this feature is enabled by default for the TFMs listed above, you can disable it by setting the `RestoreEnablePackagePruning` property to `false` in your project file or Directory.Build.props file. + +[nuget-audit]: https://learn.microsoft.com/en-us/nuget/concepts/auditing-packages +[prune-package-references-spec]: https://github.com/NuGet/Home/blob/451c27180d14214bca60483caee57f0dc737b8cf/accepted/2024/prune-package-reference.md From d6fb2993a54872470b592828a94a985cc7a2421c Mon Sep 17 00:00:00 2001 From: Jon Galloway Date: Tue, 18 Feb 2025 15:46:03 -0800 Subject: [PATCH 23/44] Fix markdown lint --- release-notes/10.0/preview/preview1/10.0.0-preview.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index 4ff174a248..f953bd5a1a 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -61,9 +61,9 @@ The following repos have been updated. .NET 10 is compatible with [Visual Studio 17.XX latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://get.dot.net/10) and install the .NET 10 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 10.0 Preview releases. - ## Feedback + Your feedback is important and appreciated. We've created a discussion at for your questions and comments. ## Packages updated in this release From dedd6f688266717b45590e93e3965802fb1dff4d Mon Sep 17 00:00:00 2001 From: Logan Bussell Date: Tue, 18 Feb 2025 19:15:13 -0500 Subject: [PATCH 24/44] Add containers release notes for .NET 10 Preview 1 (#9746) * Update containers section on main 10p1 readme * Add release notes for containers * Change Docker to container Co-authored-by: Matt Thalman * Put Ubuntu announcement first * Apply suggestions from code review Co-authored-by: Rich Lander * Remove extra newlines * Update haedings and links --------- Co-authored-by: Matt Thalman Co-authored-by: Rich Lander --- .../10.0/preview/preview1/10.0.0-preview.1.md | 9 ++-- release-notes/10.0/preview/preview1/README.md | 1 + .../10.0/preview/preview1/containers.md | 45 +++++++++++++++++++ 3 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 release-notes/10.0/preview/preview1/containers.md diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index f953bd5a1a..424e8ec9cc 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -43,19 +43,16 @@ $ dotnet --version dotnet workload install tvos ``` -## Docker Images +## Container 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. +[.NET container images](https://github.com/dotnet/dotnet-docker/blob/main/README.md) have been updated for this release. The [.NET container samples](https://github.com/dotnet/dotnet-docker/blob/main/samples/README.md) show various ways to use .NET container images. -The following repos have been updated. +The following repos have been updated: - [dotnet/sdk](https://github.com/dotnet/dotnet-docker/blob/main/README.sdk.md): .NET SDK - [dotnet/aspnet](https://github.com/dotnet/dotnet-docker/blob/main/README.aspnet.md): ASP.NET Core Runtime - [dotnet/runtime](https://github.com/dotnet/dotnet-docker/blob/main/README.runtime.md): .NET Runtime - [dotnet/runtime-deps](https://github.com/dotnet/dotnet-docker/blob/main/README.runtime.md): .NET Runtime Dependencies -- [dotnet/monitor](https://github.com/dotnet/dotnet-docker/blob/main/README.monitor.md): .NET Monitor -- [dotnet/monitor/base](https://github.com/dotnet/dotnet-docker/blob/main/README.monitor-base.md): .NET Monitor Base -- [dotnet/samples](https://github.com/dotnet/dotnet-docker/blob/main/README.samples.md): .NET Samples ## Visual Studio Compatibility diff --git a/release-notes/10.0/preview/preview1/README.md b/release-notes/10.0/preview/preview1/README.md index aa89e2c15b..c98dd722da 100644 --- a/release-notes/10.0/preview/preview1/README.md +++ b/release-notes/10.0/preview/preview1/README.md @@ -11,6 +11,7 @@ - [.NET Aspire](./dotnetaspire.md) - [.NET MAUI](./dotnetmaui.md) - [ASP.NET Core](./aspnetcore.md) +- [Container images](./containers.md) - [EF Core & Data](./efcore.md) - [Windows Forms](./winforms.md) - [WPF](./wpf.md) diff --git a/release-notes/10.0/preview/preview1/containers.md b/release-notes/10.0/preview/preview1/containers.md new file mode 100644 index 0000000000..04bcb96b82 --- /dev/null +++ b/release-notes/10.0/preview/preview1/containers.md @@ -0,0 +1,45 @@ +# Container image updates in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes the following updates for container images: + +- [`10.0-preview` tags use Ubuntu 24.04](#100-preview-tags-use-ubuntu-2404) +- [Debian images use Debian 13 "Trixie"](#debian-images-use-debian-13-trixie) +- [Ubuntu Chiseled images now contain the Chisel manifest](#ubuntu-chiseled-images-now-contain-the-chisel-manifest) + +## `10.0-preview` tags use Ubuntu 24.04 + +The default OS for .NET tags has been changed from Debian to Ubuntu. +This applies to all .NET tags that do not explicitly specify an OS. +Debian images are still produced and supported. +They can be referenced using the `-trixie-slim` suffix. + +- `docker pull mcr.microsoft.com/dotnet/sdk:10.0-preview` - Refers to Ubuntu 24.04 "Noble Numbat" +- `docker pull mcr.microsoft.com/dotnet/sdk:10.0-preview-noble` - Refers to Ubuntu 24.04 "Noble Numbat" +- `docker pull mcr.microsoft.com/dotnet/sdk:10.0-preview-trixie-slim` - Refers to Debian 13 "Trixie" + +For more information, see: +- [.NET containers supported platforms](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-platforms.md) +- [Proposal: Switch to Ubuntu for .NET convenience tags (dotnet/dotnet-docker#5709)](https://github.com/dotnet/dotnet-docker/discussions/5709) + +## Debian images use Debian 13 "Trixie" + +New images for Debian 13 "Trixie" have been added for .NET 10. + +See [dotnet/core#9652](https://github.com/dotnet/core/issues/9652) for more context. + +- `docker pull mcr.microsoft.com/dotnet/sdk:10.0-preview-trixie-slim` +- `docker pull mcr.microsoft.com/dotnet/aspnet:10.0-preview-trixie-slim` +- `docker pull mcr.microsoft.com/dotnet/runtime:10.0-preview-trixie-slim` +- `docker pull mcr.microsoft.com/dotnet/runtime-deps:10.0-preview-trixie-slim` + +## Ubuntu Chiseled images now contain the Chisel manifest + +[Ubuntu Chiseled](https://github.com/dotnet/dotnet-docker/edit/main/documentation/ubuntu-chiseled.md) images are a type of distroless container image that contain only the minimal set of packages .NET needs, with everything else removed. New for .NET 10, Ubuntu Chiseled images include the [Chisel manifest]. +The Chisel manifest describes the package contents of the image and can also be used to install additional packages on top of existing Chiseled base images. + +For more information, see: +- [How do I install additional packages on Chiseled images?](https://github.com/dotnet/dotnet-docker/blob/main/documentation/ubuntu-chiseled.md#how-do-i-install-additional-packages-on-chiseled-images) +- [Chisel manifest documentation][Chisel manifest] +- [PR: Add documentation for installing additional slices on Ubuntu Chiseled images (dotnet/dotnet-docker#6187)](https://github.com/dotnet/dotnet-docker/pull/6187). + +[Chisel manifest]: https://discourse.ubuntu.com/t/chisel-manifest-is-supported-in-newly-released-v1-0-0/48944 \ No newline at end of file From e9c14635185184828854012a4653ad2027985de7 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Tue, 18 Feb 2025 16:32:18 -0800 Subject: [PATCH 25/44] .NET 10 P1 -- Runtime and Libraries changes (#9715) * Create runtime branch * Add cryptography notes * Fix typo * Add ISOWeek overloads for DateOnly type * ZipArchive * Remove duplicate ISOWeek method overloads section * Add String Normalization APIs for Span * Fix formatting in String Normalization APIs section * Fix formatting for String Normalization APIs section * Fix formatting for String Normalization APIs section * Update String Normalization APIs section * Update String Normalization APIs section * Doc formatting fix * Adding TimeSpan note * Add JIT notes * Convert tabs to spaces * Better ZipArchive stats * Fix stack allocation description * Feedback Co-authored-by: Andy Ayers * Add AVX10.2 experimental note, and feedback * "C-style" -> "typical" Co-authored-by: Rich Lander * Add stack allocation example * Numeric ordering, ordered dictionary, json options, matrix operations * Apply suggestions from code review * Update release-notes/10.0/preview/preview1/libraries.md Apply Rich's suggestion Co-authored-by: Rich Lander * Update release-notes/10.0/preview/preview1/libraries.md * Fix linter issues --------- Co-authored-by: Jeremy Barton Co-authored-by: Tarek Mahmoud Sayed <10833894+tarekgh@users.noreply.github.com> Co-authored-by: carlossanlop <1175054+carlossanlop@users.noreply.github.com> Co-authored-by: Aman Khalid Co-authored-by: Andy Ayers Co-authored-by: Pranav Senthilnathan --- .../10.0/preview/preview1/libraries.md | 264 +++++++++++++++++- .../10.0/preview/preview1/runtime.md | 91 +++++- 2 files changed, 337 insertions(+), 18 deletions(-) diff --git a/release-notes/10.0/preview/preview1/libraries.md b/release-notes/10.0/preview/preview1/libraries.md index a6c0ab98fd..93962aa072 100644 --- a/release-notes/10.0/preview/preview1/libraries.md +++ b/release-notes/10.0/preview/preview1/libraries.md @@ -2,13 +2,269 @@ .NET 10 Preview 1 includes new .NET Libraries features & enhancements: -- [Feature](#feature) - .NET Libraries updates in .NET 10: - [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation +## Finding Certificates By Thumbprints Other Than SHA-1 + +Finding certificates uniquely by thumbprint is a fairly common operation, +but the `X509Certificate2Collection.Find` method (for the `FindByThumbprint` mode) only searches for the SHA-1 Thumbprint value. + +Since SHA-2-256 ("SHA256") and SHA-3-256 have the same lengths, +we decided that making the Find method find any vaguely matching thumbprints was not the best option. + +Instead, we introduced a new method that accepts the name of the hash algorithm that you want to use for matching. + +```C# +X509Certificate2Collection coll = store.Certificates.FindByThumbprint(HashAlgorithmName.SHA256, thumbprint); +Debug.Assert(coll.Count < 2, "Collection has too many matches, has SHA-2 been broken?"); +return coll.SingleOrDefault(); +``` + +## Finding PEM-encoded Data in ASCII/UTF-8 + +The PEM encoding (originally "Privacy Enhanced Mail", but now used widely outside of email) is defined for "text", +which means that the `PemEncoding` class was designed to run on `System.String` and `ReadOnlySpan`. +But, it's quite common (especially on Linux) to have something like a certificate written in a file that uses the ASCII (string) encoding. +Historically, that meant you needed to open the file, convert the bytes to chars (or a string), and then you can use PemEncoding. + +Taking advantage of the fact that PEM is only defined for 7-bit ASCII characters, and that 7-bit ASCII has a perfect overlap with single-byte UTF-8 values, +you can now skip the UTF-8/ASCII to char conversion and read the file directly. + +```diff +byte[] fileContents = File.ReadAllBytes(path); +-char[] text = Encoding.ASCII.GetString(fileContents); +-PemFields pemFields = PemEncoding.Find(text); ++PemFields pemFields = PemEncoding.FindUtf8(fileContents); + +-byte[] contents = Base64.DecodeFromChars(text.AsSpan()[pemFields.Base64Data]); ++byte[] contents = Base64.DecodeFromUtf8(fileContents.AsSpan()[pemFields.Base64Data]); +``` + +## New Method Overloads in ISOWeek for DateOnly Type + +The ISOWeek class was originally designed to work exclusively with DateTime, as it was introduced before the DateOnly type existed. Now that DateOnly is available, it makes sense for ISOWeek to support it as well. + +```C# + public static class ISOWeek + { + // New overloads + public static int GetWeekOfYear(DateOnly date); + public static int GetYear(DateOnly date); + public static DateOnly ToDateOnly(int year, int week, DayOfWeek dayOfWeek); + } +``` + +## String Normalization APIs to Work with Span of Characters + +Unicode string normalization has been supported for a long time, but existing APIs have only worked with the string type. This means that callers with data stored in different forms, such as character arrays or spans, must allocate a new string to use these APIs. +Additionally, APIs that return a normalized string always allocate a new string to represent the normalized output. + +The change introduces new APIs that work with spans of characters, expanding normalization beyond string types and helping to avoid unnecessary allocations. + +```C# + public static class StringNormalizationExtensions + { + public static int GetNormalizedLength(this ReadOnlySpan source, NormalizationForm normalizationForm = NormalizationForm.FormC); + public static bool IsNormalized(this ReadOnlySpan source, NormalizationForm normalizationForm = NormalizationForm.FormC); + public static bool TryNormalize(this ReadOnlySpan source, Span destination, out int charsWritten, NormalizationForm normalizationForm = NormalizationForm.FormC); + } +``` + +## Numeric Ordering for String Comparison + +Numerical string comparison is a highly requested feature () for comparing strings numerically instead of lexicographically. For example, `2` is less than `10`, so `"2"` should appear before `"10"` when ordered numerically. Similarly, `"2"` and `"02"` are equal numerically. With the new `CompareOptions.NumericOrdering` option, it is now possible to do these types of comparisons: + +```cs +StringComparer numericStringComparer = StringComparer.Create(CultureInfo.CurrentCulture, CompareOptions.NumericOrdering); + +Console.WriteLine(numericStringComparer.Equals("02", "2")); +// Output: True + +foreach (string os in new[] { "Windows 8", "Windows 10", "Windows 11" }.Order(numericStringComparer)) +{ + Console.WriteLine(os); +} + +// Output: +// Windows 8 +// Windows 10 +// Windows 11 + +HashSet set = new HashSet(numericStringComparer) { "007" }; +Console.WriteLine(set.Contains("7")); +// Output: True +``` + +Note that this option is not valid for the following index based string operations: `IndexOf`, `LastIndexOf`, `StartsWith`, `EndsWith`, `IsPrefix`, and `IsSuffix`. + +## Adding TimeSpan.FromMilliseconds Overload with a Single Parameter + +Previously, we introduced the following method without adding an overload that takes a single parameter: + +```C# +public static TimeSpan FromMilliseconds(long milliseconds, long microseconds = 0); +``` + +Although this works since the second parameter is optional, it causes a compilation error when used in a LINQ expression like: + +```C# +Expression a = () => TimeSpan.FromMilliseconds(1000); +``` + +The issue arises because LINQ expressions cannot handle optional parameters. To address this, we are introducing an overload that takes a single parameter and modifying the existing method to make the second parameter mandatory: + +```C# +public readonly struct TimeSpan +{ + public static TimeSpan FromMilliseconds(long milliseconds, long microseconds); // Second parameter is no longer optional + public static TimeSpan FromMilliseconds(long milliseconds); // New overload +} +``` + +## ZipArchive performance and memory improvements + +Two significant PRs have been made by contributor @edwardneal in .NET 10 Preview 1 to improve the performance and memory usage of `ZipArchive`: + +- [dotnet/runtime #102704](https://github.com/dotnet/runtime/pull/102704) optimizes the way entries are written to a `ZipArchive` when in `Update` mode. Previously, all `ZipArchiveEntries` would be loaded into memory and rewritten, which could lead to high memory usage and performance bottlenecks. The optimization reduces memory usage and improves performance by avoiding the need to load all entries into memory. + + Adding a 2GB zip file to an existing archive showed: + + - A 99.8% reduction in execution time. + - A 99.9996% reduction in memory usage. + + Benchmarks: + + | Method | Job | Runtime | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio | + |---------- |--------- |---------- |-------------:|-----------:|------------:|------:|--------:|----------:|----------:|----------:|-----------:|------------:| + | Benchmark | Baseline | .NET 9.0 | 4.187 s | 83.3751 ms | 177.6792 ms | 1.002 | 0.06 | 1000.0000 | 1000.0000 | 1000.0000 | 2 GB | 1.000 | + | Benchmark | CoreRun | .NET 10.0 | 9.452 ms | 0.1583 ms | 0.1322 ms | 0.002 | 0.00 | - | - | - | 7.01 KB | 0.000 | + + Additional details are provided in [dotnet/runtime #102704](https://github.com/dotnet/runtime/pull/102704#issue-2317941700). + +- [dotnet/runtime #103153](https://github.com/dotnet/runtime/pull/103153) enhances the performance of `ZipArchive` by parallelizing the extraction of entries and optimizing internal data structures for better memory usage. These improvements address issues related to performance bottlenecks and high memory usage, making `ZipArchive` more efficient and faster, especially when dealing with large archives. + + Reading a zip archive showed: + + - An 18% reduction in execution time. + - An 18% reduction in memory usage. + + Benchmarks: + + | Method | Job | Runtime | NumberOfFiles | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio | + |---------- |--------- |---------- |-------------- |----------------:|--------------:|--------------:|------:|--------:|----------:|---------:|---------:|-----------:|------------:| + | Benchmark | Baseline | .NET 9.0 | 2 | 1,178.6 ns | 23.23 ns | 22.81 ns | 1.00 | 0.03 | 0.3700 | - | - | 1.52 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 2 | 821.6 ns | 12.45 ns | 11.65 ns | 0.70 | 0.02 | 0.2899 | - | - | 1.19 KB | 0.78 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 10 | 4,205.5 ns | 62.41 ns | 55.33 ns | 1.00 | 0.02 | 1.4954 | - | - | 6.13 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 10 | 3,467.5 ns | 67.25 ns | 66.05 ns | 0.82 | 0.02 | 1.2054 | - | - | 4.93 KB | 0.80 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 25 | 10,201.5 ns | 190.59 ns | 187.18 ns | 1.00 | 0.02 | 3.5095 | - | - | 14.38 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 25 | 8,210.2 ns | 152.35 ns | 142.51 ns | 0.81 | 0.02 | 2.8229 | - | - | 11.54 KB | 0.80 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 50 | 20,152.7 ns | 333.29 ns | 311.76 ns | 1.00 | 0.02 | 7.0496 | - | - | 28.91 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 50 | 20,109.1 ns | 517.18 ns | 1,500.43 ns | 1.00 | 0.08 | 5.7068 | - | - | 23.34 KB | 0.81 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 100 | 46,986.2 ns | 923.08 ns | 1,906.33 ns | 1.00 | 0.06 | 14.2822 | 0.1221 | - | 58.42 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 100 | 37,767.2 ns | 752.51 ns | 1,554.06 ns | 0.81 | 0.05 | 11.5967 | 0.0610 | - | 47.38 KB | 0.81 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 250 | 115,159.8 ns | 2,211.52 ns | 2,271.07 ns | 1.00 | 0.03 | 34.5459 | 0.1221 | - | 141.42 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 250 | 94,148.7 ns | 1,842.33 ns | 3,414.87 ns | 0.82 | 0.03 | 27.8320 | 0.3662 | - | 113.97 KB | 0.81 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 500 | 241,338.5 ns | 4,726.33 ns | 7,896.64 ns | 1.00 | 0.05 | 69.8242 | 0.4883 | - | 285.86 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 500 | 184,869.9 ns | 2,969.04 ns | 4,162.18 ns | 0.77 | 0.03 | 56.1523 | 0.7324 | - | 231.06 KB | 0.81 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 1000 | 510,114.6 ns | 10,092.12 ns | 20,386.57 ns | 1.00 | 0.05 | 114.2578 | 72.2656 | - | 577.2 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 1000 | 404,349.3 ns | 7,289.88 ns | 16,153.88 ns | 0.79 | 0.04 | 93.2617 | 52.7344 | - | 467.72 KB | 0.81 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 10000 | 13,950,239.9 ns | 273,372.39 ns | 345,728.57 ns | 1.00 | 0.03 | 1000.0000 | 687.5000 | 218.7500 | 5786.24 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 10000 | 10,911,298.0 ns | 204,013.47 ns | 226,760.43 ns | 0.78 | 0.02 | 843.7500 | 609.3750 | 250.0000 | 4692.19 KB | 0.81 | + + Creating an archive showed: + + - A 23-35% reduction in execution time. + - A 2% reduction in memory usage. + + Benchmarks: + + | Method | Job | Runtime | NumberOfFiles | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | + |---------- |--------- |---------- |-------------- |----------:|----------:|-----------:|----------:|------:|--------:|--------:|--------:|----------:|------------:| + | Benchmark | Baseline | .NET 9.0 | 2 | 2.729 μs | 0.0538 μs | 0.0449 μs | 2.706 μs | 1.00 | 0.02 | 2.2697 | - | 9.28 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 2 | 1.665 μs | 0.0256 μs | 0.0239 μs | 1.659 μs | 0.61 | 0.01 | 2.2259 | - | 9.1 KB | 0.98 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 10 | 10.341 μs | 0.1988 μs | 0.2289 μs | 10.266 μs | 1.00 | 0.03 | 9.7046 | - | 39.76 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 10 | 7.937 μs | 0.1514 μs | 0.2487 μs | 7.831 μs | 0.77 | 0.03 | 9.5215 | - | 39.02 KB | 0.98 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 25 | 24.677 μs | 0.4903 μs | 0.8842 μs | 24.563 μs | 1.00 | 0.05 | 20.1721 | 3.3569 | 82.92 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 25 | 18.247 μs | 0.3474 μs | 0.3412 μs | 18.192 μs | 0.74 | 0.03 | 19.7754 | 3.2654 | 81.13 KB | 0.98 | + | | | | | | | | | | | | | | | + | Benchmark | Baseline | .NET 9.0 | 50 | 67.420 μs | 5.7447 μs | 16.9384 μs | 57.185 μs | 1.05 | 0.35 | 40.5273 | 13.4888 | 166.71 KB | 1.00 | + | Benchmark | CoreRun | .NET 10.0 | 50 | 41.443 μs | 0.7212 μs | 0.8306 μs | 41.493 μs | 0.65 | 0.13 | 39.6729 | 0.0610 | 163.16 KB | 0.98 | + + Additional benchmarking details provided [in the PR description](https://github.com/dotnet/runtime/pull/103153#issue-2339713028). + +## Additional `TryAdd` and `TryGetValue` overloads for `OrderedDictionary` + +`OrderedDictionary` provides `TryAdd` and `TryGetValue` for addition and retrieval like any other `IDictionary` implementation. However, there are scenarios where you might want to perform additional operations, so new overloads have been added which return an index to the entry: + +```cs +public class OrderedDictionary +{ + // New overloads + public bool TryAdd(TKey key, TValue value, out int index); + public bool TryGetValue(TKey key, out TValue value, out int index); +} +``` + +This index can then be used with `GetAt`/`SetAt` for fast access to the entry. An example usage of the new `TryAdd` overload is to add or update a key/value pair in the ordered dictionary: + +```cs +public static void IncrementValue(OrderedDictionary orderedDictionary, string key) +{ + // Try to add a new key with value 1. + if (!orderedDictionary.TryAdd(key, 1, out int index)) + { + // Key was present, so increment the existing value instead. + int value = orderedDictionary.GetAt(index).Value; + orderedDictionary.SetAt(index, value + 1); + } +} +``` + +This new API is now being used in `JsonObject` to improve the performance of updating properties by 10-20%. + +## Allow specifying ReferenceHandler in `JsonSourceGenerationOptions` + +When using source generators for JSON serialization, the generated context will throw when cycles are serialized or deserialized. This behavior can now be customized by specifying the `ReferenceHandler` in the `JsonSourceGenerationOptionsAttribute`. Here is an example using `JsonKnownReferenceHandler.Preserve`: + +```cs +SelfReference selfRef = new SelfReference(); +selfRef.Me = selfRef; + +Console.WriteLine(JsonSerializer.Serialize(selfRef, ContextWithPreserveReference.Default.SelfReference)); +// Output: {"$id":"1","Me":{"$ref":"1"}} + +[JsonSourceGenerationOptions(ReferenceHandler = JsonKnownReferenceHandler.Preserve)] +[JsonSerializable(typeof(SelfReference))] +internal partial class ContextWithPreserveReference : JsonSerializerContext +{ +} + +internal class SelfReference +{ + public SelfReference Me { get; set; } +} +``` + +## More Left-Handed Matrix Transformation Methods -## Feature +The remaining APIs for creating left-handed tranformation matrices have been added for billboard and constrained billboard matrices. These can be used like their existing right-handed counterparts when using a left-handed coordinate system instead. -This is something about the feature +```cs +public partial struct Matrix4x4 +{ + public static Matrix4x4 CreateBillboardLeftHanded(Vector3 objectPosition, Vector3 cameraPosition, Vector3 cameraUpVector, Vector3 cameraForwardVector) + public static Matrix4x4 CreateConstrainedBillboardLeftHanded(Vector3 objectPosition, Vector3 cameraPosition, Vector3 rotateAxis, Vector3 cameraForwardVector, Vector3 objectForwardVector) +} +``` diff --git a/release-notes/10.0/preview/preview1/runtime.md b/release-notes/10.0/preview/preview1/runtime.md index 14edce23b7..678d2da8c7 100644 --- a/release-notes/10.0/preview/preview1/runtime.md +++ b/release-notes/10.0/preview/preview1/runtime.md @@ -1,14 +1,77 @@ -# .NET Runtime in .NET 10 Preview 1 - Release Notes - -.NET 10 Preview 1 includes new .NET Runtime features & enhancements: - -- [Feature](#feature) - -.NET Runtime updates in .NET 10: - -- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation - - -## Feature - -This is something about the feature +# .NET Runtime in .NET 10 Preview 1 - Release Notes + +.NET 10 Preview 1 includes new .NET Runtime features & enhancements: + +.NET Runtime updates in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + +## Array Interface Method Devirtualization + +Reducing the abstraction overhead of popular language features is one of the code generation team's [focus areas](https://github.com/dotnet/runtime/issues/108988) for .NET 10. In pursuit of this goal, we have expanded the JIT's ability to devirtualize method calls to cover array interface methods. + +Consider the typical approach of looping over an array: + +```csharp +static int Sum(int[] array) +{ + int sum = 0; + for (int i = 0; i < array.Length; i++) + { + sum += array[i]; + } + return sum; +} +``` + +This code shape is easy for the JIT to optimize, mainly because there aren't any virtual calls to reason about. Instead, the JIT can focus on removing bounds checks on the array access, and applying the loop optimizations we added in .NET 9. Let's tweak the above example to add some virtual calls: + +```csharp +static int Sum(int[] array) +{ + int sum = 0; + IEnumerable temp = array; + + foreach (var num in temp) + { + sum += num; + } + return sum; +} +``` + +The type of the underlying collection is clear, and the JIT should be able to transform this snippet into the first one. However, array interfaces are implemented differently from "normal" interfaces, such that the JIT does not know how to devirtualize them. This means the enumerator calls in the for-each loop remain virtual, blocking multiple optimizations: inlining, stack allocation, and others. + +The JIT can now devirtualize and inline array interface methods, thanks to work in [dotnet/runtime #108153](https://github.com/dotnet/runtime/pull/108153) and [dotnet/runtime #109209](https://github.com/dotnet/runtime/pull/109209). This is the first of many steps we will be taking to achieve performance parity between the above implementations, as detailed in our [de-abstraction plans](https://github.com/dotnet/runtime/issues/108913) for .NET 10. + +## Stack Allocation of Arrays of Value Types + +In .NET 9, the JIT gained the ability to allocate objects on the stack, when the object is guaranteed to not outlive its parent method. Not only does stack allocation reduce the number of objects the GC has to track, but it also unlocks other optimizations: For example, after an object has been stack-allocated, the JIT can consider replacing it entirely with its scalar values. Because of this, stack allocation is key to reducing the abstraction penalty of reference types. + +Thanks to [dotnet/runtime #104906](https://github.com/dotnet/runtime/pull/104906) (credit: [@hez2010](https://github.com/hez2010)), the JIT will now stack-allocate small, fixed-sized arrays of value types that don't contain GC pointers when it can make the same lifetime guarantees described above. Consider the following example: + +```csharp +static void Sum() +{ + int[] numbers = {1, 2, 3}; + int sum = 0; + + for (int i = 0; i < numbers.Length; i++) + { + sum += numbers[i]; + } + + Console.WriteLine(sum); +} + +``` + +Because the JIT knows `numbers` is an array of only three integers at compile-time, and it does not outlive a call to `Sum`, it will now allocate it on the stack. + +Among other [stack allocation enhancements](https://github.com/dotnet/runtime/issues/104936), we plan to expand this ability to arrays of reference types in the coming previews. + +## AVX10.2 Support + +[dotnet/runtime #111209](https://github.com/dotnet/runtime/pull/111209) (credit: [@khushal1996](https://github.com/khushal1996)) enables support for the Advanced Vector Extensions (AVX) 10.2 for x64-based processors. The new intrinsics available in the `System.Runtime.Intrinsics.X86.Avx10v2` class can be tested once capable hardware is available. In the next several previews, we plan to further incorporate AVX10.2 support into the JIT's emitter to take full advantage of the instruction set's features. + +Because AVX10.2-enabled hardware is not yet available, the JIT's support for AVX10.2 is disabled by default for now. We plan to enable it once we have thoroughly tested it. From 611774ab7b6d5d2fb36fce1b175d2ce625a9025c Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Tue, 18 Feb 2025 16:35:34 -0800 Subject: [PATCH 26/44] Add ASP.NET Core release notes for .NET 10 Preview 1 (#9740) --- .../10.0/preview/preview1/aspnetcore.md | 251 ++++++++++++++++-- .../media/program-partial-class-analyzer.png | Bin 0 -> 145581 bytes 2 files changed, 235 insertions(+), 16 deletions(-) create mode 100644 release-notes/10.0/preview/preview1/media/program-partial-class-analyzer.png diff --git a/release-notes/10.0/preview/preview1/aspnetcore.md b/release-notes/10.0/preview/preview1/aspnetcore.md index 6aa09d8119..9f72156bf4 100644 --- a/release-notes/10.0/preview/preview1/aspnetcore.md +++ b/release-notes/10.0/preview/preview1/aspnetcore.md @@ -1,16 +1,235 @@ -# ASP.NET Core in .NET 10 Preview 1 - Release Notes - -.NET 10 Preview 1 includes new ASP.NET Core features & enhancements: - -- [Feature](#feature) - -ASP.NET Core updates in .NET 10: - -- [What's new in ASP.NET Core in .NET 10](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) documentation -- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/10.0#aspnet-core) -- [Roadmap](https://aka.ms/aspnet/roadmap) - - -## Feature - -This is something about the feature +# ASP.NET Core in .NET 10 Preview 1 - Release Notes + +Here's a summary of what's new in ASP.NET Core in this preview release: + +- [OpenAPI 3.1 support](#openapi-31-support) +- [Generate OpenAPI documents in YAML format](#generate-openapi-documents-in-yaml-format) +- [Response description on `ProducesResponseType`](#response-description-on-producesresponsetype) +- [Detect if URL is local using `RedirectHttpResult.IsLocalUrl`](#detect-if-url-is-local-using-redirecthttpresultislocalurl) +- [Improvements to integration testing of apps with top-level statements](#improvements-to-integration-testing-of-apps-with-top-level-statements) +- [QuickGrid `RowClass` parameter](#quickgrid-rowclass-parameter) +- [Blazor script as a static web asset](#blazor-script-as-a-static-web-asset) +- [Route syntax highlighting for Blazor `RouteAttribute`](#route-syntax-highlighting-for-blazor-routeattribute) + +ASP.NET Core updates in .NET 10 Preview 1: + +- [Release notes](aspnetcore.md) +- [What's new in ASP.NET Core in .NET 10](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) documentation. +- [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/10.0#aspnet-core) +- [Roadmap](https://github.com/dotnet/aspnetcore/issues/59443) + +.NET 10 Preview 1: + +- [Discussion](https://aka.ms/dotnet/10/preview1) +- [Release notes](README.md) + +## OpenAPI 3.1 support + +ASP.NET Core has added support for generating [OpenAPI version 3.1](https://spec.openapis.org/oas/v3.1.1.html) documents in .NET 10. Despite the minor version bump, OpenAPI 3.1 is a significant update to the OpenAPI specification, with full support for [JSON Schema draft 2020-12](https://json-schema.org/specification-links#2020-12). For example, nullable types in OpenAPI 3.1 no longer have the `nullable: true` schema property, but instead have a `type` keyword whose value is an array that includes `null` as one of the types. + +In .NET 10, the default OpenAPI version for generated documents will be 3.1, but you can easily change this by explicitly setting the `OpenApiVersion` property of the `OpenApiOptions` in the `configureOptions` delegate parameter of `AddOpenApi`. + +```csharp +builder.Services.AddOpenApi(options => +{ + // Specify the OpenAPI version to use. + options.OpenApiVersion = Microsoft.OpenApi.OpenApiSpecVersion.OpenApi3_0; +}); +``` + +If you are generating the OpenAPI document at build time, you can select the OpenAPI version by setting the `--openapi-version` in the `OpenApiGenerateDocumentsOptions` MSBuild property. + +```xml + +--openapi-version OpenApi3_0 +``` + +### Breaking changes + +Support for OpenAPI 3.1 requires an update to the underlying [OpenAPI.NET](https://github.com/microsoft/OpenAPI.NET) library to a new major version, 2.0. This new version has some breaking changes from the previous version that may impact your applications if you have any document, operation, or schema transformers. Perhaps the most significant change is that the `OpenApiAny` class has been dropped in favor of using `JsonNode` directly. If your transformers use `OpenApiAny`, you will need to update them to use `JsonNode` instead. + +For example, a schema transformer to add an example in .NET 9 might look like this: + +```csharp +options.AddSchemaTransformer((schema, context, cancellationToken) => +{ + if (context.JsonTypeInfo.Type == typeof(WeatherForecast)) + { + schema.Example = new OpenApiObject + { + ["date"] = new OpenApiString(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd")), + ["temperatureC"] = new OpenApiInteger(0), + ["temperatureF"] = new OpenApiInteger(32), + ["summary"] = new OpenApiString("Bracing"), + }; + } + return Task.CompletedTask; +}); +``` + +In .NET 10 the transformer to do the same task looks like this: + +```csharp +options.AddSchemaTransformer((schema, context, cancellationToken) => +{ + if (context.JsonTypeInfo.Type == typeof(WeatherForecast)) + { + schema.Example = new JsonObject + { + ["date"] = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"), + ["temperatureC"] = 0, + ["temperatureF"] = 32, + ["summary"] = "Bracing", + }; + } + return Task.CompletedTask; +}); +``` + +Note that these code changes will be necessary even if you configure the OpenAPI version to 3.0. + +## Generate OpenAPI documents in YAML format + +ASP.NET now supports serving the generated OpenAPI document in YAML format. YAML can be more concise than JSON, eliminating curly braces and quotation marks when these can be inferred. YAML also supports multi-line strings, which can be useful for long descriptions. + +To configure your application to serve the generated OpenAPI document in YAML format, specify the endpoint in the MapOpenApi call with a ".yaml" or ".yml" suffix, as shown in this example: + +```csharp +app.MapOpenApi("/openapi/{documentName}.yaml"); +``` + +Support for YAML is currently only available when served at runtime from the OpenAPI endpoint. Support for generating OpenAPI documents in YAML format at build time will be added in a future preview. + +## Response description on `ProducesResponseType` + +`ProducesAttribute`, `ProducesResponseTypeAttribute`, and `ProducesDefaultResponseType` now accept an optional string parameter, `Description`, that will set the description of the response in the generated OpenAPI document. + +For example: + +```csharp +[HttpGet(Name = "GetWeatherForecast")] +[ProducesResponseType>(StatusCodes.Status200OK, Description = "The weather forecast for the next 5 days.")] +public IEnumerable Get() +{ + ... +} +``` + +Generated OpenAPI response: + +```json +"responses": { + "200": { + "description": "The weather forecast for the next 5 days.", + "content": { ... } + } +} +``` + +Thank you [sander1095](https://github.com/sander1095) for this contribution! + +## Detect if URL is local using `RedirectHttpResult.IsLocalUrl` + +Use the new `RedirectHttpResult.IsLocalUrl(url)` helper method to detect if a URL is local. A URL is considered local if it does not have the host or authority part and it has an absolute path. This method is useful for validating URLs before redirecting to them to prevent open redirection attacks. + +```csharp +if (RedirectHttpResult.IsLocalUrl(url)) +{ + return Results.LocalRedirect(url); +} +``` + +Thank you [@martincostello](https://github.com/martincostello) for this contribution! + +## Improvements to integration testing of apps with top-level statements + +.NET 10 now has better support for testing apps that use top-level statements. Previously developers had to manually add `public partial class Program` to the *Program.cs* file so that the test project could reference the `Program` class. This is because the top-level statement feature in C# 9 generated a `Program` class that was declared as internal. + +In .NET 10, a source generator is used to generate the `public partial class Program` declaration if the developer did not declare it explicitly. In addition, an analyzer was added to detect when `public partial class Program` is declared explicitly and advise the developer to remove it. + +![Image](./media/program-partial-class-analyzer.png) + +## QuickGrid `RowClass` parameter + +Apply a stylesheet class to a row of the grid based on the row item using the new `RowClass` parameter. In the following example, the `ApplyRowStyle` method is called on each row to conditionally apply a stylesheet class based on the row item: + +```razor + + ... + + +@code { + private string ApplyRowStyle({TYPE} rowItem) => + rowItem.{PROPERTY} == {VALUE} ? "{CSS STYLE CLASS}" : null; +} +``` + +For more information, see [Style a table row based on the row item](https://learn.microsoft.com/aspnet/core/blazor/components/quickgrid?view=aspnetcore-10.0&#style-a-table-row-based-on-the-row-item). + +## Blazor script as a static web asset + +In prior releases of .NET, the Blazor framework script is served from an embedded resource in the ASP.NET Core shared framework. In .NET 10, the Blazor script is now served as a static web asset with automatic precompression and fingerprinting enabled to reduce the download size and improve caching of the file. + +Size comparison for *blazor.web.js* in .NET 10: + +- **Uncompressed**: 183 KB +- **Precompressed**: 43 KB +- **Size reduction**: 76% + +## Route syntax highlighting for Blazor `RouteAttribute` + +The `RouteAttribute` in Blazor now supports route syntax highlighting to help visualize the structure of the route template. + +Thank you [@IEvangelist](https://github.com/IEvangelist) for this contribution! + +## Community contributors + +Thank you contributors! ❤️ + +- [@AliKhalili](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AAliKhalili) +- [@am11](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Aam11) +- [@andrewjsaid](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Aandrewjsaid) +- [@AshkanAfsharpour](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AAshkanAfsharpour) +- [@bhaskarqlik](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Abhaskarqlik) +- [@bradmarder](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Abradmarder) +- [@bretthoes](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Abretthoes) +- [@BurkusCat](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3ABurkusCat) +- [@chenguohui](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Achenguohui) +- [@ChrisAnn](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AChrisAnn) +- [@chrisoverzero](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Achrisoverzero) +- [@ctolkien](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Actolkien) +- [@david-acker](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Adavid-acker) +- [@ErisApps](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AErisApps) +- [@feiyun0112](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Afeiyun0112) +- [@gnerkus](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Agnerkus) +- [@hwoodiwiss](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Ahwoodiwiss) +- [@ithline](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Aithline) +- [@jgarciadelanoceda](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Ajgarciadelanoceda) +- [@joegoldman2](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Ajoegoldman2) +- [@JTeeuwissen](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AJTeeuwissen) +- [@ladeak](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Aladeak) +- [@marcominerva](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Amarcominerva) +- [@martincostello](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Amartincostello) +- [@MattyLeslie](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AMattyLeslie) +- [@melotic](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Amelotic) +- [@onurkanbakirci](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Aonurkanbakirci) +- [@OrganizationUsername](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AOrganizationUsername) +- [@OwnageIsMagic](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AOwnageIsMagic) +- [@paulomorgado](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Apaulomorgado) +- [@polatengin](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Apolatengin) +- [@RobCannon](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3ARobCannon) +- [@rsandbach](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Arsandbach) +- [@sander1095](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Asander1095) +- [@scottlwalker](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Ascottlwalker) +- [@shethaadit](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Ashethaadit) +- [@S-Luiten](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AS-Luiten) +- [@Smaug123](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3ASmaug123) +- [@tikap](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Atikap) +- [@v-firzha](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Av-firzha) +- [@WeihanLi](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AWeihanLi) +- [@WhatzGames](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AWhatzGames) +- [@whoaskedfrfr](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Awhoaskedfrfr) +- [@whysocket](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Awhysocket) +- [@wokket](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3Awokket) +- [@WretchedDade](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AWretchedDade) +- [@xC0dex](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview1+author%3AxC0dex) diff --git a/release-notes/10.0/preview/preview1/media/program-partial-class-analyzer.png b/release-notes/10.0/preview/preview1/media/program-partial-class-analyzer.png new file mode 100644 index 0000000000000000000000000000000000000000..ef3f4f72423a896ea9f5d26bfd408a05c8e88d2e GIT binary patch literal 145581 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 ObjeG Date: Wed, 19 Feb 2025 11:44:45 -0800 Subject: [PATCH 27/44] Remove extra line in release notes. --- release-notes/10.0/preview/preview1/10.0.0-preview.1.md | 1 - 1 file changed, 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index 424e8ec9cc..8b72f700d9 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -60,7 +60,6 @@ The following repos have been updated: ## Feedback - Your feedback is important and appreciated. We've created a discussion at for your questions and comments. ## Packages updated in this release From 117dd0203a02749867c39951bac1b42f03485417 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 19 Feb 2025 11:45:15 -0800 Subject: [PATCH 28/44] Add link to install packages on Chiseled images --- release-notes/10.0/preview/preview1/containers.md | 1 + 1 file changed, 1 insertion(+) diff --git a/release-notes/10.0/preview/preview1/containers.md b/release-notes/10.0/preview/preview1/containers.md index 04bcb96b82..1386e31297 100644 --- a/release-notes/10.0/preview/preview1/containers.md +++ b/release-notes/10.0/preview/preview1/containers.md @@ -38,6 +38,7 @@ See [dotnet/core#9652](https://github.com/dotnet/core/issues/9652) for more cont The Chisel manifest describes the package contents of the image and can also be used to install additional packages on top of existing Chiseled base images. For more information, see: + - [How do I install additional packages on Chiseled images?](https://github.com/dotnet/dotnet-docker/blob/main/documentation/ubuntu-chiseled.md#how-do-i-install-additional-packages-on-chiseled-images) - [Chisel manifest documentation][Chisel manifest] - [PR: Add documentation for installing additional slices on Ubuntu Chiseled images (dotnet/dotnet-docker#6187)](https://github.com/dotnet/dotnet-docker/pull/6187). From e1d997a5f8074502aa176b203b012d55daa5f403 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 19 Feb 2025 11:45:50 -0800 Subject: [PATCH 29/44] Update C# 14 release notes --- release-notes/10.0/preview/preview1/csharp.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/release-notes/10.0/preview/preview1/csharp.md b/release-notes/10.0/preview/preview1/csharp.md index da6fa0ec57..eed9a985b5 100644 --- a/release-notes/10.0/preview/preview1/csharp.md +++ b/release-notes/10.0/preview/preview1/csharp.md @@ -8,7 +8,6 @@ - [Modifiers on simple lambda parameters](#modifiers-on-simple-lambda-parameters) - [Experimental feature - String literals in data section](#preview-feature-string-literals-in-data-section) - C# 14 updates: - [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) documentation @@ -34,8 +33,6 @@ You can add parameter modifiers, such as `ref`, `in`, or `out` to lambda express ## Experimental feature: String literals in data section - This opt-in experimental feature allows changing how string literals in C# programs are emitted into PE files. By turning on the feature flag, string literals (where possible) are emitted as UTF-8 data into a different section of the PE file without a data limit. The emit format is similar to explicit UTF-8 string literals. - You can learn more by reading the feature [documentation](https://github.com/dotnet/roslyn/blob/main/docs/features/string-literals-data-section.md). From 5548a3b0a1081c0477a5869366949cd7b5a991d7 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 19 Feb 2025 11:46:22 -0800 Subject: [PATCH 30/44] Remove extra newlines in release notes. --- release-notes/10.0/preview/preview1/fsharp.md | 3 +-- release-notes/10.0/preview/preview1/visualbasic.md | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/release-notes/10.0/preview/preview1/fsharp.md b/release-notes/10.0/preview/preview1/fsharp.md index 5a9527d500..9e9536eaa1 100644 --- a/release-notes/10.0/preview/preview1/fsharp.md +++ b/release-notes/10.0/preview/preview1/fsharp.md @@ -2,6 +2,7 @@ .NET 10 Preview 1 includes the following F# features & enhancements: + - [F# Language](#f-language) - [FSharp.Core standard library](#fsharpcore-standard-library) - [FSharp.Compiler.Service](#fsharpcompilerservice) @@ -12,12 +13,10 @@ [Release notes for new F# language features](https://fsharp.github.io/fsharp-compiler-docs/release-notes/Language.html) list language changes that have to be enabled by `preview` project property in `.fsproj` project file. They will become the default with .NET 10 release. - ## FSharp.Core Standard Library [Changes to the FSharp.Core standard library](https://fsharp.github.io/fsharp-compiler-docs/release-notes/FSharp.Core.html) are applied automatically to projects compiled with new SDK, unless they pin down a lower FSharp.Core version. - ## FSharp.Compiler.Service General improvements and bugfixes in the compiler implementation are at [Release notes for FSharp.Compiler.Service](https://fsharp.github.io/fsharp-compiler-docs/release-notes/FSharp.Compiler.Service.html). diff --git a/release-notes/10.0/preview/preview1/visualbasic.md b/release-notes/10.0/preview/preview1/visualbasic.md index 1a432a0e2a..74e4983e77 100644 --- a/release-notes/10.0/preview/preview1/visualbasic.md +++ b/release-notes/10.0/preview/preview1/visualbasic.md @@ -7,7 +7,6 @@ These features are part of our strategy to ensure that Visual Basic can consume updated features in C# and the runtime. These features won't change how you write Visual Basic code, you'll just find it easier to use the latest runtime APIs. - Visual Basic updates: - [What's new in Visual Basic](https://learn.microsoft.com/dotnet/visual-basic/whats-new/) documentation From e051544826a108ac4b70074e5f4f73bb9e68405a Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 19 Feb 2025 14:56:45 -0700 Subject: [PATCH 31/44] update md --- release-notes/10.0/preview/preview1/containers.md | 1 + release-notes/10.0/preview/preview1/csharp.md | 2 +- .../10.0/preview/preview1/dotnetaspire.md | 14 -------------- release-notes/10.0/preview/preview1/fsharp.md | 3 +-- release-notes/10.0/preview/preview1/winforms.md | 2 +- 5 files changed, 4 insertions(+), 18 deletions(-) delete mode 100644 release-notes/10.0/preview/preview1/dotnetaspire.md diff --git a/release-notes/10.0/preview/preview1/containers.md b/release-notes/10.0/preview/preview1/containers.md index 1386e31297..631808a047 100644 --- a/release-notes/10.0/preview/preview1/containers.md +++ b/release-notes/10.0/preview/preview1/containers.md @@ -18,6 +18,7 @@ They can be referenced using the `-trixie-slim` suffix. - `docker pull mcr.microsoft.com/dotnet/sdk:10.0-preview-trixie-slim` - Refers to Debian 13 "Trixie" For more information, see: + - [.NET containers supported platforms](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-platforms.md) - [Proposal: Switch to Ubuntu for .NET convenience tags (dotnet/dotnet-docker#5709)](https://github.com/dotnet/dotnet-docker/discussions/5709) diff --git a/release-notes/10.0/preview/preview1/csharp.md b/release-notes/10.0/preview/preview1/csharp.md index eed9a985b5..6651ae9eed 100644 --- a/release-notes/10.0/preview/preview1/csharp.md +++ b/release-notes/10.0/preview/preview1/csharp.md @@ -6,7 +6,7 @@ - [Implicit span conversions](#implicit-span-conversions) - [`field` backed properties](#field-backed-properties) - [Modifiers on simple lambda parameters](#modifiers-on-simple-lambda-parameters) -- [Experimental feature - String literals in data section](#preview-feature-string-literals-in-data-section) +- [Experimental feature - String literals in data section](#experimental-feature-string-literals-in-data-section) C# 14 updates: diff --git a/release-notes/10.0/preview/preview1/dotnetaspire.md b/release-notes/10.0/preview/preview1/dotnetaspire.md deleted file mode 100644 index 93d68583c4..0000000000 --- a/release-notes/10.0/preview/preview1/dotnetaspire.md +++ /dev/null @@ -1,14 +0,0 @@ -# .NET Aspire 10 Preview 1 - Release Notes - -.NET 10 Preview 1 includes new .NET Aspire features & enhancements: - -- [Feature](#feature) - -.NET Aspire 10 updates: - -- [What's new in .NET Aspire in .NET 10](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-10) documentation - - -## Feature - -This is something about the feature diff --git a/release-notes/10.0/preview/preview1/fsharp.md b/release-notes/10.0/preview/preview1/fsharp.md index 9e9536eaa1..0bee55dcb6 100644 --- a/release-notes/10.0/preview/preview1/fsharp.md +++ b/release-notes/10.0/preview/preview1/fsharp.md @@ -1,7 +1,6 @@ # F# updates in .NET 10 Preview 1 - Release Notes -.NET 10 Preview 1 includes the following F# features & enhancements: - +.NET 10 Preview 1 includes the following F# features & enhancements: - [F# Language](#f-language) - [FSharp.Core standard library](#fsharpcore-standard-library) diff --git a/release-notes/10.0/preview/preview1/winforms.md b/release-notes/10.0/preview/preview1/winforms.md index 2603394a55..628b49679f 100644 --- a/release-notes/10.0/preview/preview1/winforms.md +++ b/release-notes/10.0/preview/preview1/winforms.md @@ -77,7 +77,7 @@ We’ve introduced the following APIs in Windows Forms for .NET 10 Preview 1: - `public bool TryGetData(string format, out T data)` - `public bool TryGetData(string format, Func resolver, out T data)` -**New Clipboard compatibility configuration switch** +**New Clipboard compatibility configuration switch:** - `Windows.ClipboardDragDrop.EnableUnsafeBinaryFormatterSerialization` From 6ec31eb4e05ee7a69cdd9ad366806d527e100e2d Mon Sep 17 00:00:00 2001 From: David Ortinau Date: Wed, 19 Feb 2025 17:28:24 -0600 Subject: [PATCH 32/44] .NET MAUI in .NET 10 Preview 1 (#9727) * [Draft] .NET MAUI in .NET 10 Preview 1 * Update release-notes/10.0/preview/preview1/dotnetmaui.md Co-authored-by: Rolf Bjarne Kvinge * Update release-notes/10.0/preview/preview1/dotnetmaui.md Co-authored-by: Rolf Bjarne Kvinge * Apply suggestions from code review Co-authored-by: Rolf Bjarne Kvinge * cleanup * add info about handlers * Update dotnetmaui.md added Android notes * Update dotnetmaui.md removed community contributions section since we don't have any yet. * cleanup * add ios information --------- Co-authored-by: James Montemagno Co-authored-by: Rolf Bjarne Kvinge --- .../10.0/preview/preview1/dotnetmaui.md | 145 +++++++++++++++++- 1 file changed, 140 insertions(+), 5 deletions(-) diff --git a/release-notes/10.0/preview/preview1/dotnetmaui.md b/release-notes/10.0/preview/preview1/dotnetmaui.md index 0e9f2b6269..7b77b2ea3a 100644 --- a/release-notes/10.0/preview/preview1/dotnetmaui.md +++ b/release-notes/10.0/preview/preview1/dotnetmaui.md @@ -1,15 +1,150 @@ # .NET MAUI in .NET 10 Preview 1 - Release Notes -.NET 10 Preview 1 includes new .NET MAUI features & enhancements: +This release was focused on quality improvements to .NET MAUI, .NET for Android, and .NET for iOS, Mac Catalyst, macOS, and tvOS. You can find detailed information about the improvements below: -- [Feature](#feature) -- [GitHub Release Notes](https://aka.ms/maui9p1) +- .NET MAUI + - [GitHub Release Notes](https://aka.ms/maui10p1) + - [CollectionView enhancements for iOS and Mac Catalyst](#collectionview-enhancements-for-ios-and-mac-catalyst) +- [.NET for Android](#net-for-android) + - [Android 16 (Baklava) Beta 1](#android-16-baklava-beta-1) + - [Minimum supported Android API recommendations](#updated-recommended-minimum-supported-android-api) + - [Building with JDK-21 is now supported](#building-with-jdk-21-is-now-supported) + - [`dotnet run` support for Androd projects](#support-for-dotnet-run-for-android) + - [Enable marshal methods by default](#enable-marshal-methods-by-default) + - [Visual Studio Design-Time Builds no longer invoke `aapt2`](#visual-studio-design-time-builds-no-longer-invoke-aapt2) +- [.NET for iOS, Mac Catalyst, macOS, tvOS](#net-for-ios-mac-catalyst-macos-tvos) + - [Trimmer warnings enabled by default](#trimmer-warnings-enabled-by-default) + - [Bundling original resources in libraries](#bundling-original-resources-in-libraries) .NET MAUI updates in .NET 10: - [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) documentation. +> **Known Issue:** building `net8.0-*` target frameworks with the .NET 10 SDK does not work in Preview 1. -## Feature +## CollectionView enhancements for iOS and Mac Catalyst -This is something about the feature +Two new handlers for `CollectionView` and `CarouselView` on iOS and Mac Catalyst that brought performance and stability improvements were available optionally in [.NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#collectionview-and-carouselview). In this release they are now on by default. + +You can _opt out_ of these handlers by adding the following code to your `MauiProgram` class if you want to revert back. + +```csharp +#if IOS || MACCATALYST +builder.ConfigureMauiHandlers(handlers => +{ + handlers.AddHandler(); + handlers.AddHandler(); +}); +#endif +``` + +We are excited for you to give these new handlers a try. As a reminder, if you have .NET 9 applications you can try them today with the following code: + +```csharp +#if IOS || MACCATALYST +builder.ConfigureMauiHandlers(handlers => +{ + handlers.AddHandler(); + handlers.AddHandler(); +}); +#endif +``` + +## .NET for Android + +This release was focused on quality improvements. A detailed list can be found on [dotnet/android GitHub releases](https://github.com/dotnet/android/releases/). + +### Android 16 (Baklava) Beta 1 + +Google has released [Beta 1](https://android-developers.googleblog.com/2025/01/first-beta-android16.html) of the Android 16 (API-36) SDK. Support has been added for using these preview APIs. + +To target the Android 16 preview API: +- Use the Android SDK Manager to download the Android 16 (Baklava) Platform +- Update your project's `TargetFramework` to `net10.0-android36` + +### Updated Recommended Minimum Supported Android API + +The .NET for Android project templates have been updated to specify `24` ("Nougat") as the default `$(SupportedOSPlatformVersion)` instead of `21` ("Lollipop"). This prevents users from hitting "desugaring" runtime crashes when using Java default interface methods. + +While API-21 is still supported in .NET 10, we recommend updating existing projects to API-24 in order to avoid unexpected runtime errors. + +> Note: See the main [GitHub pull request](https://github.com/dotnet/android/pull/9656) for more information. + +### Building with JDK-21 is now supported + +.NET for Android projects can now be built with JDK-21. + +### Support for `dotnet run` for Android + +.NET for Android projects can now be run using `dotnet run`: + +```cli +// Run on the only attached Android physical device +dotnet run -p:AdbTarget=-d + +// Run on the only running Android emulator +dotnet run -p:AdbTarget=-e + +// Run on the specified Android physical device or emulator +dotnet run -p:AdbTarget="-s emulator-5554" +``` + +The `AdbTarget` property is passed to the `adb` (Android Debug Bridge) command tool. + +> Note: See the [GitHub pull request](https://github.com/dotnet/android/pull/9470) for more information. + +### Enable marshal methods by default + +A [new way](https://github.com/dotnet/android/pull/7351) of creating the marshal methods needed for Java calling into C# code is now enabled by default. Introduced in .NET 9, we have continued work to stabilize the implementation for .NET 10. This features improves application startup performance. + +If you are getting a hang on startup on .NET 10 previews that you didn't see on .NET 9, try disabling marshal methods. If this fixes the hang, please file an issue letting us know there are still issues with marshal methods. + +```xml +false +``` + +### Visual Studio Design-Time Builds no longer invoke `aapt2` + +For design-time builds, `aapt2` is no longer invoked; instead, the `.aar` files and underlying Android resources are parsed directly. This reduces the time of a Design-Time Build for some of our unit tests from over 2s to under 600ms. + +## .NET for iOS, Mac Catalyst, macOS, tvOS + +This release was focused on quality improvements. A details list can be found on [xamarin/xamarin-macios GitHub released](https://github.com/xamarin/xamarin-macios/releases/) including a list of [Known issues](https://github.com/xamarin/xamarin-macios/wiki/Known-issues-in-.NET10). + +### Trimmer warnings enabled by default + +In the past we've suppressed trimmer warnings, because the base class library produced trimmer warnings, which meant that it wouldn't be possible for developers to fix all the trimmer warnings. + +However, in .NET 9 we believe we fixed all the trimmer warnings from our own code, so now we're ready to for developers to do the same, and thus we're enabling trimmer warnings by default. + +This can be disabled, by adding this to the project file: + +```xml + + true + +``` + +Ref: https://github.com/xamarin/xamarin-macios/issues/21293 + +### Bundling original resources in libraries + +Library projects can have various types of bundle resources (storyboards, xibs, property lists, png images, CoreML models, texture atlases, etc.), and they're bundled into the compiled library as embedded resources. + +If any processing can be done (such as compiling storyboards or xibs, or optimizing property lists/png images, etc), this has historically been done before embedding, but this complicates library builds a lot, because this processing: + +* Needs to run on a Mac, because compiling xibs/storyboards can only be done on a Mac. +* Needs Apple's toolchain around. +* Makes it impossible to do any decision-making based on the original resources when building the app. + +So we've added opt-in support for embedding the original resource in libraries in .NET 9, and making it opt-out in .NET 10. + +The default behavior can be changed in the project file like this: + +```xml + + false + +``` + +Ref: https://github.com/xamarin/xamarin-macios/issues/19028 From 2601d5da19a9a1b05350f72cd153c61695ce3367 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 19 Feb 2025 16:33:02 -0700 Subject: [PATCH 33/44] update md --- release-notes/10.0/preview/preview1/containers.md | 2 +- release-notes/10.0/preview/preview1/dotnetmaui.md | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/release-notes/10.0/preview/preview1/containers.md b/release-notes/10.0/preview/preview1/containers.md index 631808a047..6287349aeb 100644 --- a/release-notes/10.0/preview/preview1/containers.md +++ b/release-notes/10.0/preview/preview1/containers.md @@ -44,4 +44,4 @@ For more information, see: - [Chisel manifest documentation][Chisel manifest] - [PR: Add documentation for installing additional slices on Ubuntu Chiseled images (dotnet/dotnet-docker#6187)](https://github.com/dotnet/dotnet-docker/pull/6187). -[Chisel manifest]: https://discourse.ubuntu.com/t/chisel-manifest-is-supported-in-newly-released-v1-0-0/48944 \ No newline at end of file +[Chisel manifest]: https://discourse.ubuntu.com/t/chisel-manifest-is-supported-in-newly-released-v1-0-0/48944 diff --git a/release-notes/10.0/preview/preview1/dotnetmaui.md b/release-notes/10.0/preview/preview1/dotnetmaui.md index 7b77b2ea3a..a0ea80beb2 100644 --- a/release-notes/10.0/preview/preview1/dotnetmaui.md +++ b/release-notes/10.0/preview/preview1/dotnetmaui.md @@ -59,6 +59,7 @@ This release was focused on quality improvements. A detailed list can be found o Google has released [Beta 1](https://android-developers.googleblog.com/2025/01/first-beta-android16.html) of the Android 16 (API-36) SDK. Support has been added for using these preview APIs. To target the Android 16 preview API: + - Use the Android SDK Manager to download the Android 16 (Baklava) Platform - Update your project's `TargetFramework` to `net10.0-android36` @@ -70,7 +71,7 @@ While API-21 is still supported in .NET 10, we recommend updating existing proje > Note: See the main [GitHub pull request](https://github.com/dotnet/android/pull/9656) for more information. -### Building with JDK-21 is now supported +### Building with JDK-21 is now supported .NET for Android projects can now be built with JDK-21. @@ -125,7 +126,7 @@ This can be disabled, by adding this to the project file: ``` -Ref: https://github.com/xamarin/xamarin-macios/issues/21293 +See the [GitHub Issue](https://github.com/xamarin/xamarin-macios/issues/21293) for more infomration. ### Bundling original resources in libraries @@ -133,9 +134,9 @@ Library projects can have various types of bundle resources (storyboards, xibs, If any processing can be done (such as compiling storyboards or xibs, or optimizing property lists/png images, etc), this has historically been done before embedding, but this complicates library builds a lot, because this processing: -* Needs to run on a Mac, because compiling xibs/storyboards can only be done on a Mac. -* Needs Apple's toolchain around. -* Makes it impossible to do any decision-making based on the original resources when building the app. +- Needs to run on a Mac, because compiling xibs/storyboards can only be done on a Mac. +- Needs Apple's toolchain around. +- Makes it impossible to do any decision-making based on the original resources when building the app. So we've added opt-in support for embedding the original resource in libraries in .NET 9, and making it opt-out in .NET 10. @@ -147,4 +148,4 @@ The default behavior can be changed in the project file like this: ``` -Ref: https://github.com/xamarin/xamarin-macios/issues/19028 +See the [GitHub Issue](https://github.com/xamarin/xamarin-macios/issues/19028) for more information. From cdf0747666354d1cc1760421b781da4000fa22f8 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 19 Feb 2025 16:47:08 -0700 Subject: [PATCH 34/44] trailing --- release-notes/10.0/preview/preview1/dotnetmaui.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/dotnetmaui.md b/release-notes/10.0/preview/preview1/dotnetmaui.md index a0ea80beb2..e061885064 100644 --- a/release-notes/10.0/preview/preview1/dotnetmaui.md +++ b/release-notes/10.0/preview/preview1/dotnetmaui.md @@ -24,7 +24,7 @@ This release was focused on quality improvements to .NET MAUI, .NET for Android, ## CollectionView enhancements for iOS and Mac Catalyst -Two new handlers for `CollectionView` and `CarouselView` on iOS and Mac Catalyst that brought performance and stability improvements were available optionally in [.NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#collectionview-and-carouselview). In this release they are now on by default. +Two new handlers for `CollectionView` and `CarouselView` on iOS and Mac Catalyst that brought performance and stability improvements were available optionally in [.NET 9](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-9?view=net-maui-9.0#collectionview-and-carouselview). In this release they are now on by default. You can _opt out_ of these handlers by adding the following code to your `MauiProgram` class if you want to revert back. From b057c02f2a2111cacefd1e5bfacb4a3e00395d67 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Mon, 24 Feb 2025 11:21:44 -0800 Subject: [PATCH 35/44] Update wpf.md --- release-notes/10.0/preview/preview1/wpf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/wpf.md b/release-notes/10.0/preview/preview1/wpf.md index 939191fd97..e519e29393 100644 --- a/release-notes/10.0/preview/preview1/wpf.md +++ b/release-notes/10.0/preview/preview1/wpf.md @@ -2,7 +2,7 @@ This release was focused on quality improvements to WPF. You can find detailed information about the improvements in the GitHub Release below: -- [WPFGitHub Release Notes](https://github.com/dotnet/wpf/releases) +- [WPF GitHub Release Notes](https://github.com/dotnet/wpf/releases) WPF updates in .NET 10: From 0db8c73e46ea4a5f8e9277a1f1790a09407c76e9 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 25 Feb 2025 08:17:11 -0800 Subject: [PATCH 36/44] Update release-notes/10.0/preview/preview1/10.0.0-preview.1.md Co-authored-by: Jon Galloway --- release-notes/10.0/preview/preview1/10.0.0-preview.1.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index 8b72f700d9..8b19185747 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -56,7 +56,8 @@ The following repos have been updated: ## Visual Studio Compatibility -.NET 10 is compatible with [Visual Studio 17.XX latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://get.dot.net/10) and install the .NET 10 runtime/sdk standalone. Visual Studio for Mac is currently not supported for .NET 10.0 Preview releases. +.NET 10 is compatible with [Visual Studio 17.14 latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://get.dot.net/10) and install the .NET 10 runtime/sdk standalone. + ## Feedback From 6b4360b67dddae84f5ead9cbc3b1def295dc68a3 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 25 Feb 2025 08:17:36 -0800 Subject: [PATCH 37/44] Update release-notes/10.0/preview/preview1/README.md Co-authored-by: Jon Galloway --- release-notes/10.0/preview/preview1/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/README.md b/release-notes/10.0/preview/preview1/README.md index c98dd722da..53fc1b3646 100644 --- a/release-notes/10.0/preview/preview1/README.md +++ b/release-notes/10.0/preview/preview1/README.md @@ -27,7 +27,6 @@ You can find a detailed overview of all new features in .NET 10: - [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) - [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) - [What's new in F# 10](https://learn.microsoft.com/dotnet/fsharp/whats-new/fsharp-10) -- [What's new in .NET Aspire](https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-10) - [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) - [What's new in ASP.NET Core](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) - [What's new in Entity Framework Core](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) From 7f97c3ba8ae384ec3c23e02523d42f3521688cdb Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 25 Feb 2025 08:44:33 -0800 Subject: [PATCH 38/44] updates --- release-notes/10.0/preview/preview1/README.md | 11 ++++++++--- release-notes/10.0/preview/preview1/libraries.md | 10 ++++++++++ release-notes/10.0/preview/preview1/runtime.md | 4 ++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/release-notes/10.0/preview/preview1/README.md b/release-notes/10.0/preview/preview1/README.md index 53fc1b3646..1d0ee6b6de 100644 --- a/release-notes/10.0/preview/preview1/README.md +++ b/release-notes/10.0/preview/preview1/README.md @@ -1,14 +1,19 @@ # .NET 10 Preview 1 - Release Notes -.NET 10 Preview 1 released on February X, 2025. Find more information on new features released in .NET 10 Preview 1 by browsing through the release notes below: +.NET 10 Preview 1 released on February 25, 2025. Find more information on new features released in .NET 10 Preview 1 by browsing through the release notes below: - [Libraries](./libraries.md) - [Runtime](./runtime.md) - [SDK](./sdk.md) -## Feature Release Notes +## Languages + +- [C#](./csharp.md) +- [F#](./fsharp.md) +- [Visual Basic](./visualbasic.md) + +## Workloads, Libraries, & More -- [.NET Aspire](./dotnetaspire.md) - [.NET MAUI](./dotnetmaui.md) - [ASP.NET Core](./aspnetcore.md) - [Container images](./containers.md) diff --git a/release-notes/10.0/preview/preview1/libraries.md b/release-notes/10.0/preview/preview1/libraries.md index 93962aa072..56bb5a833d 100644 --- a/release-notes/10.0/preview/preview1/libraries.md +++ b/release-notes/10.0/preview/preview1/libraries.md @@ -2,6 +2,16 @@ .NET 10 Preview 1 includes new .NET Libraries features & enhancements: +- [Finding Certificates By Thumbprints Other Than SHA-1](#finding-certificates-by-thumbprints-other-than-sha-1) +- [Finding PEM-encoded Data in ASCII/UTF-8](#finding-pem-encoded-data-in-asciiutf-8) +- [New Method Overloads in ISOWeek for DateOnly Type](#new-method-overloads-in-isoweek-for-dateonly-type) +- [String Normalization APIs to Work with Span of Characters](#string-normalization-apis-to-work-with-span-of-characters) +- [Numeric Ordering for String Comparison](#numeric-ordering-for-string-comparison) +- [Adding TimeSpan.FromMilliseconds Overload with a Single Parameter](#adding-timespanfrommilliseconds-overload-with-a-single-parameter) +- [ZipArchive performance and memory improvements](#ziparchive-performance-and-memory-improvements) +- [Additional `TryAdd` and `TryGetValue` overloads for `OrderedDictionary`](#additional-tryadd-and-trygetvalue-overloads-for-ordereddictionarytkey-tvalue) +- [More Left-Handed Matrix Transformation Methods](#more-left-handed-matrix-transformation-methods) + .NET Libraries updates in .NET 10: - [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation diff --git a/release-notes/10.0/preview/preview1/runtime.md b/release-notes/10.0/preview/preview1/runtime.md index 678d2da8c7..3ebe1c2c58 100644 --- a/release-notes/10.0/preview/preview1/runtime.md +++ b/release-notes/10.0/preview/preview1/runtime.md @@ -2,6 +2,10 @@ .NET 10 Preview 1 includes new .NET Runtime features & enhancements: +- [Array Interface Method Devirtualization](#array-interface-method-devirtualization) +- [Stack Allocation of Arrays of Value Types](#stack-allocation-of-arrays-of-value-types) +- [AVX10.2 Support](#avx102-support) + .NET Runtime updates in .NET 10: - [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation From 8da04978a9377503b747048daec7b5a56e7c69c7 Mon Sep 17 00:00:00 2001 From: Nikolche Kolev Date: Tue, 25 Feb 2025 10:03:46 -0800 Subject: [PATCH 39/44] Call out pruning warnings in P1 release notes (#9752) * Call out pruning warnings * Update release-notes/10.0/preview/preview1/sdk.md Co-authored-by: Martin Costello * Update release-notes/10.0/preview/preview1/sdk.md --------- Co-authored-by: Martin Costello --- release-notes/10.0/preview/preview1/sdk.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview1/sdk.md b/release-notes/10.0/preview/preview1/sdk.md index 6b1244bc20..e5dd9cac66 100644 --- a/release-notes/10.0/preview/preview1/sdk.md +++ b/release-notes/10.0/preview/preview1/sdk.md @@ -11,6 +11,8 @@ Starting in .NET 10, the [NuGet Audit][nuget-audit] feature can now [prune frame When this feature is enabled, you should see a marked reduction in the contents of your applications' generated `.deps.json` files - any PackageReferences you may have had that are actually being supplied by the .NET Runtime you use will be automatically removed from the generated dependency file. While this feature is enabled by default for the TFMs listed above, you can disable it by setting the `RestoreEnablePackagePruning` property to `false` in your project file or Directory.Build.props file. +As part of this feature, a few different validations may be raised, [NU1509](https://learn.microsoft.com/nuget/reference/errors-and-warnings/nu1509), [NU1510](https://learn.microsoft.com/nuget/reference/errors-and-warnings/nu1510) and [NU1511](https://learn.microsoft.com/nuget/reference/errors-and-warnings/nu1511). +The most frequent warning you may see is `NU1510`, which will warn when you have unnecessary direct `PackageReference` in your project. Consider conditioning or remove those PackageReference to address this warning. -[nuget-audit]: https://learn.microsoft.com/en-us/nuget/concepts/auditing-packages +[nuget-audit]: https://learn.microsoft.com/nuget/concepts/auditing-packages [prune-package-references-spec]: https://github.com/NuGet/Home/blob/451c27180d14214bca60483caee57f0dc737b8cf/accepted/2024/prune-package-reference.md From feb4e182943a4ccd945ecabcdf579075f28c948b Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 25 Feb 2025 10:09:03 -0800 Subject: [PATCH 40/44] Update 10.0.0-preview.1.md --- .../10.0/preview/preview1/10.0.0-preview.1.md | 717 +++++++++++++++++- 1 file changed, 712 insertions(+), 5 deletions(-) diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index 8b19185747..4392844699 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -3,7 +3,7 @@ .NET 10 Preview 1 installers and binaries can be downloaded for the following product versions: - `.NET 10.0.0 Preview 1` -- `.NET SDK 10.0.100-preview.1.XXXXX.X` +- `.NET SDK 10.0.100-preview.1.25120.13` See [README.md](README.md) for .NET 10 release notes and discussions. @@ -11,7 +11,12 @@ The latest .NET releases are always listed at [.NET Releases](../../README.md). ## Downloads -// To add download links +| | SDK Installer | SDK Binaries | 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] | [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] | - | +| 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] \| [Arm][aspnetcore-runtime-linux-arm.tar.gz] \| [Arm64][aspnetcore-runtime-linux-arm64.tar.gz] \| [x64 Alpine][aspnetcore-runtime-linux-musl-x64.tar.gz] | - | +| | [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. @@ -22,7 +27,7 @@ You can check your .NET SDK version by running the following command. The exampl ```console $ dotnet --version -10.0.100-preview.1.XXXXX.X +10.0.100-preview.1.25120.13 ``` ## .NET Multi-Platform App UI (MAUI) Workload Downloads @@ -58,11 +63,713 @@ The following repos have been updated: .NET 10 is compatible with [Visual Studio 17.14 latest preview](https://visualstudio.microsoft.com) Users will have to [download](https://get.dot.net/10) and install the .NET 10 runtime/sdk standalone. - ## Feedback Your feedback is important and appreciated. We've created a discussion at for your questions and comments. +[checksums-runtime]: https://builds.dotnet.microsoft.com/dotnet/checksums/10.0.0-preview.1-sha.txt +[checksums-sdk]: https://builds.dotnet.microsoft.com/dotnet/checksums/10.0.0-preview.1-sha.txt + +[linux-packages]: ../install-linux.md + ## Packages updated in this release -// Update packages here +| Package name | Version | +| :----------- | :------------------ | +| AspNetCoreRuntime.10.0.x64 | 10.0.0-preview-1-25120-3 | +| AspNetCoreRuntime.10.0.x86 | 10.0.0-preview-1-25120-3 | +| dotnet-ef | 10.0.0-preview.1.25081.1 | +| dotnet-ilverify | 10.0.0-preview.1.25080.5 | +| dotnet-sql-cache | 10.0.0-preview.1.25120.3 | +| FSharp.Compiler.Service | 43.9.300-preview.25079.4 | +| FSharp.Core | 9.0.300-beta.25079.4 | +| Microsoft.AspNetCore.App.Internal.Assets | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Ref | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.linux-arm | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.linux-arm64 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.linux-musl-arm | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.linux-musl-arm64 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.linux-musl-x64 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.linux-x64 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.osx-arm64 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.osx-x64 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.win-arm64 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.win-x64 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.App.Runtime.win-x86 | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.Certificate | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.Facebook | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.Google | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.JwtBearer | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.MicrosoftAccount | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.Negotiate | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.OpenIdConnect | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.Twitter | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authentication.WsFederation | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Authorization | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.AzureAppServices.HostingStartup | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.AzureAppServicesIntegration | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.Analyzers | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.Authorization | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.CustomElements | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.Forms | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.QuickGrid | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.QuickGrid.EntityFrameworkAdapter | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.Web | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.WebAssembly | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.WebAssembly.Authentication | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.WebAssembly.DevServer | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.WebAssembly.Server | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Components.WebView | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.ConcurrencyLimiter | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Connections.Abstractions | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Cryptography.Internal | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Cryptography.KeyDerivation | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.DataProtection | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.DataProtection.Abstractions | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.DataProtection.EntityFrameworkCore | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.DataProtection.Extensions | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.DataProtection.StackExchangeRedis | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Grpc.JsonTranscoding | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Grpc.Swagger| .0.10.0-preview.1.25120.3 | +| Microsoft.AspNetCore.HeaderPropagation | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Hosting.WindowsServices | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Http.Connections.Client | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Http.Connections.Common | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Identity.EntityFrameworkCore | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Identity.UI | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.JsonPatch | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Metadata | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.MiddlewareAnalysis | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Mvc.NewtonsoftJson | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Mvc.Testing | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.OpenApi | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.OutputCaching.StackExchangeRedis | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.Owin | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SignalR.Client | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SignalR.Client.Core | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SignalR.Common | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SignalR.Protocols.Json | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SignalR.Protocols.MessagePack | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SignalR.Specification.Tests | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SignalR.StackExchangeRedis | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SpaProxy | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.SpaServices.Extensions | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.TestHost | 10.0.0-preview.1.25120.3 | +| Microsoft.AspNetCore.WebUtilities | 10.0.0-preview.1.25120.3 | +| Microsoft.Authentication.WebAssembly.Msal | 10.0.0-preview.1.25120.3 | +| Microsoft.Bcl.AsyncInterfaces | 10.0.0-preview.1.25080.5 | +| Microsoft.Bcl.Cryptography | 10.0.0-preview.1.25080.5 | +| Microsoft.Bcl.Memory | 10.0.0-preview.1.25080.5 | +| Microsoft.Bcl.Numerics | 10.0.0-preview.1.25080.5 | +| Microsoft.Bcl.TimeProvider | 10.0.0-preview.1.25080.5 | +| Microsoft.CodeAnalysis.Analyzers | 3.12.0-beta1.25076.4 | +| Microsoft.CodeAnalysis.AnalyzerUtilities | 3.12.0-beta1.25076.4 | +| Microsoft.CodeAnalysis.BannedApiAnalyzers | 3.12.0-beta1.25076.4 | +| Microsoft.CodeAnalysis.Metrics | 4.0.0-beta1.25076.4 | +| Microsoft.CodeAnalysis.NetAnalyzers | 10.0.0-preview.25076.4 | +| Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers | 3.12.0-beta1.25076.4 | +| Microsoft.CodeAnalysis.PublicApiAnalyzers | 3.12.0-beta1.25076.4 | +| Microsoft.CodeAnalysis.ResxSourceGenerator | 3.12.0-beta1.25076.4 | +| Microsoft.CodeAnalysis.RulesetToEditorconfigConverter | 3.12.0-beta1.25076.4 | +| Microsoft.Data.Sqlite | 10.0.0-preview.1.25081.1 | +| Microsoft.Data.Sqlite.Core | 10.0.0-preview.1.25081.1 | +| Microsoft.dotnet-openapi | 10.0.0-preview.1.25120.3 | +| Microsoft.DotNet.ApiCompat.Task | 10.0.100-preview.1.25120.13 | +| Microsoft.DotNet.ApiCompat.Tool | 10.0.100-preview.1.25120.13 | +| Microsoft.DotNet.Common.ItemTemplates | 10.0.100-preview.1.25120.13 | +| Microsoft.DotNet.Common.ProjectTemplates.10.0 | 10.0.100-preview.1.25120.13 | +| Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| Microsoft.DotNet.Web.Client.ItemTemplates | 10.0.0-preview.1.25120.3 | +| Microsoft.DotNet.Web.ItemTemplates.10.0 | 10.0.0-preview.1.25120.3 | +| Microsoft.DotNet.Web.ProjectTemplates.10.0 | 10.0.0-preview.1.25120.3 | +| Microsoft.EntityFrameworkCore | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Abstractions | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Analyzers | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Cosmos | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Design | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.InMemory | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Proxies | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Relational | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Relational.Specification.Tests | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Specification.Tests | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Sqlite | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Sqlite.Core | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.SqlServer | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.SqlServer.Abstractions | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.SqlServer.HierarchyId | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Tasks | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Templates | 10.0.0-preview.1.25081.1 | +| Microsoft.EntityFrameworkCore.Tools | 10.0.0-preview.1.25081.1 | +| Microsoft.Extensions.ApiDescription.Client | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.ApiDescription.Server | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Caching.Abstractions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Caching.Memory | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Caching.SqlServer | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Caching.StackExchangeRedis | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Configuration | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.Abstractions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.Binder | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.CommandLine | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.EnvironmentVariables | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.FileExtensions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.Ini | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.Json | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.KeyPerFile | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Configuration.UserSecrets | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Configuration.Xml | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.DependencyInjection | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.DependencyInjection.Abstractions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.DependencyInjection.Specification.Tests | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.DependencyModel | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Diagnostics | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Diagnostics.Abstractions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Diagnostics.HealthChecks | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Features | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.FileProviders.Abstractions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.FileProviders.Composite | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.FileProviders.Embedded | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.FileProviders.Physical | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.FileSystemGlobbing | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Hosting | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Hosting.Abstractions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Hosting.Systemd | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Hosting.WindowsServices | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Http | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Http.Polly | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Identity.Core | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Identity.Stores | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Localization | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Localization.Abstractions | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Logging | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Logging.Abstractions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Logging.AzureAppServices | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Logging.Configuration | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Logging.Console | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Logging.Debug | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Logging.EventLog | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Logging.EventSource | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Logging.TraceSource | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.ObjectPool | 10.0.0-preview.1.25120.3 | +| Microsoft.Extensions.Options | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Options.ConfigurationExtensions | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Options.DataAnnotations | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.Primitives | 10.0.0-preview.1.25080.5 | +| Microsoft.Extensions.WebEncoders | 10.0.0-preview.1.25120.3 | +| Microsoft.ILVerification | 10.0.0-preview.1.25080.5 | +| Microsoft.JSInterop | 10.0.0-preview.1.25120.3 | +| Microsoft.JSInterop.WebAssembly | 10.0.0-preview.1.25120.3 | +| Microsoft.NET.Build.Containers | 10.0.100-preview.1.25120.13 | +| Microsoft.Net.Http.Headers | 10.0.0-preview.1.25120.3 | +| Microsoft.NET.ILLink.Tasks | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.Android.Sample.Mono | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.linux-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.linux-musl-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.linux-musl-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.linux-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.osx-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.osx-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-arm64.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-musl-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-musl-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.osx-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.osx-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-arm64.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.osx-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.osx-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.win-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.win-arm64.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.win-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.win-x64.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-musl-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-musl-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.osx-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.osx-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.win-arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.win-arm64.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.win-x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.win-x64.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Runtime.iOS.Sample.Mono | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.LibraryBuilder.Sdk | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.MonoAOTCompiler.Task | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.MonoTargets.Sdk | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.wasm.Sample.Mono | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Sdk | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Templates.net10 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Templates.net10.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Templates.net10.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Templates.net10.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.Net.Sdk.Compilers.Toolset | 10.0.100-preview.1.25120.13 | +| Microsoft.NET.Sdk.IL | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Sdk.WebAssembly.Pack | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Sdk.WebAssembly.Pack.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Sdk.WebAssembly.Pack.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Sdk.WebAssembly.Pack.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.WebAssembly.Threading | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net6.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net6.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net6.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net6.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net7.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net7.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net7.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net7.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net8.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net8.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net8.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net8.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net9.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net9.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net9.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Emscripten.net9.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25077.1 | +| Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest-10.0.100-preview.1 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest-10.0.100-preview.1.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest-10.0.100-preview.1.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest-10.0.100-preview.1.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.linux-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.linux-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.linux-musl-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.linux-musl-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.linux-musl-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.linux-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.osx-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.osx-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.win-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.win-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Crossgen2.win-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.linux-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.linux-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.linux-bionic-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.linux-bionic-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.linux-musl-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.linux-musl-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.linux-musl-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.linux-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.osx-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.osx-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.win-arm64 | 10.0.0-preview.1.25080.5 | +| Text.Analyzers | 3.12.0-beta1.25076.4 | +| Microsoft.NETCore.App.Host.win-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Host.win-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Ref | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.ios-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvos-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x86.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.linux-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.linux-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.linux-bionic-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.linux-bionic-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.linux-musl-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.linux-musl-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.linux-musl-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.linux-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.ios-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvos-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.wasi-wasm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.ios-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.iossimulator-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.iossimulator-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-arm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.maccatalyst-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.maccatalyst-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.osx-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.osx-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.tvos-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.tvossimulator-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.tvossimulator-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.win-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.win-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.win-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.osx-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.osx-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.win-arm64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.win-x64 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.App.Runtime.win-x86 | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| Microsoft.TemplateEngine.Abstractions | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Authoring.CLI | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Authoring.Tasks | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Authoring.Templates | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Authoring.TemplateVerifier | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Core | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Core.Contracts | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Edge | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.IDE | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Orchestrator.RunnableProjects | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Samples | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.TemplateLocalizer.Core | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateEngine.Utils | 10.0.100-preview.1.25077.1 | +| Microsoft.TemplateSearch.Common | 10.0.100-preview.1.25077.1 | +| Microsoft.Win32.Registry.AccessControl | 10.0.0-preview.1.25080.5 | +| Microsoft.Win32.SystemEvents | 10.0.0-preview.1.25080.5 | +| Microsoft.Windows.Compatibility | 10.0.0-preview.1.25080.4 | +| Microsoft.WindowsDesktop.App.Ref | 10.0.0-preview.1.25080.4 | +| Microsoft.WindowsDesktop.App.Runtime.win-arm64 | 10.0.0-preview.1.25080.4 | +| Microsoft.WindowsDesktop.App.Runtime.win-x64 | 10.0.0-preview.1.25080.4 | +| Microsoft.WindowsDesktop.App.Runtime.win-x86 | 10.0.0-preview.1.25080.4 | +| Microsoft.XmlSerializer.Generator | 10.0.0-preview.1.25080.5 | +| Roslyn.Diagnostics.Analyzers | 3.12.0-beta1.25076.4 | +| runtime.android-arm.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.android-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.android-x64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.android-x86.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm64.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.linux-bionic-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.linux-bionic-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.linux-bionic-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.linux-bionic-x64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm64.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-x64.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-x64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-musl-x64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.linux-x64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.linux-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.linux-x64.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-x64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.linux-x64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.maccatalyst-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.maccatalyst-x64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.osx-arm64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.osx-arm64.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.osx-arm64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.osx-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.osx-x64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.osx-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.osx-x64.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.osx-x64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.osx-x64.runtime.native.System.IO.Ports | 10.0.0-preview.1.25080.5 | +| runtime.win-arm64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.win-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.win-arm64.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.win-arm64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.win-x64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.win-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.win-x64.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.win-x64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| runtime.win-x86.Microsoft.DotNet.ILCompiler | 10.0.0-preview.1.25080.5 | +| runtime.win-x86.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.1.25080.5 | +| runtime.win-x86.Microsoft.NETCore.ILAsm | 10.0.0-preview.1.25080.5 | +| runtime.win-x86.Microsoft.NETCore.ILDAsm | 10.0.0-preview.1.25080.5 | +| System.CodeDom | 10.0.0-preview.1.25080.5 | +| System.Collections.Immutable | 10.0.0-preview.1.25080.5 | +| System.ComponentModel.Composition | 10.0.0-preview.1.25080.5 | +| System.ComponentModel.Composition.Registration | 10.0.0-preview.1.25080.5 | +| System.Composition | 10.0.0-preview.1.25080.5 | +| System.Composition.AttributedModel | 10.0.0-preview.1.25080.5 | +| System.Composition.Convention | 10.0.0-preview.1.25080.5 | +| System.Composition.Hosting | 10.0.0-preview.1.25080.5 | +| System.Composition.Runtime | 10.0.0-preview.1.25080.5 | +| System.Composition.TypedParts | 10.0.0-preview.1.25080.5 | +| System.Configuration.ConfigurationManager | 10.0.0-preview.1.25080.5 | +| System.Data.Odbc | 10.0.0-preview.1.25080.5 | +| System.Data.OleDb | 10.0.0-preview.1.25080.5 | +| System.Diagnostics.DiagnosticSource | 10.0.0-preview.1.25080.5 | +| System.Diagnostics.EventLog | 10.0.0-preview.1.25080.5 | +| System.Diagnostics.PerformanceCounter | 10.0.0-preview.1.25080.5 | +| System.DirectoryServices | 10.0.0-preview.1.25080.5 | +| System.DirectoryServices.AccountManagement | 10.0.0-preview.1.25080.5 | +| System.DirectoryServices.Protocols | 10.0.0-preview.1.25080.5 | +| System.Drawing.Common | 10.0.0-preview.1.25080.3 | +| System.Formats.Asn1 | 10.0.0-preview.1.25080.5 | +| System.Formats.Cbor | 10.0.0-preview.1.25080.5 | +| System.Formats.Nrbf | 10.0.0-preview.1.25080.5 | +| System.IO.Hashing | 10.0.0-preview.1.25080.5 | +| System.IO.Packaging | 10.0.0-preview.1.25080.5 | +| System.IO.Pipelines | 10.0.0-preview.1.25080.5 | +| System.IO.Ports | 10.0.0-preview.1.25080.5 | +| System.Linq.AsyncEnumerable | 10.0.0-preview.1.25080.5 | +| System.Management | 10.0.0-preview.1.25080.5 | +| System.Memory.Data | 10.0.0-preview.1.25080.5 | +| System.Net.Http.Json | 10.0.0-preview.1.25080.5 | +| System.Net.Http.WinHttpHandler | 10.0.0-preview.1.25080.5 | +| System.Net.ServerSentEvents | 10.0.0-preview.1.25080.5 | +| System.Numerics.Tensors | 10.0.0-preview.1.25080.5 | +| System.Reflection.Context | 10.0.0-preview.1.25080.5 | +| System.Reflection.Metadata | 10.0.0-preview.1.25080.5 | +| System.Reflection.MetadataLoadContext | 10.0.0-preview.1.25080.5 | +| System.Resources.Extensions | 10.0.0-preview.1.25080.5 | +| System.Runtime.Caching | 10.0.0-preview.1.25080.5 | +| System.Runtime.Serialization.Formatters | 10.0.0-preview.1.25080.5 | +| System.Runtime.Serialization.Schema | 10.0.0-preview.1.25080.5 | +| System.Security.Cryptography.Cose | 10.0.0-preview.1.25080.5 | +| System.Security.Cryptography.Pkcs | 10.0.0-preview.1.25080.5 | +| System.Security.Cryptography.ProtectedData | 10.0.0-preview.1.25080.5 | +| System.Security.Cryptography.Xml | 10.0.0-preview.1.25080.5 | +| System.Security.Permissions | 10.0.0-preview.1.25080.5 | +| System.ServiceModel.Syndication | 10.0.0-preview.1.25080.5 | +| System.ServiceProcess.ServiceController | 10.0.0-preview.1.25080.5 | +| System.Speech | 10.0.0-preview.1.25080.5 | +| System.Text.Encoding.CodePages | 10.0.0-preview.1.25080.5 | +| System.Text.Encodings.Web | 10.0.0-preview.1.25080.5 | +| System.Text.Json | 10.0.0-preview.1.25080.5 | +| System.Threading.AccessControl | 10.0.0-preview.1.25080.5 | +| System.Threading.Channels | 10.0.0-preview.1.25080.5 | +| System.Threading.RateLimiting | 10.0.0-preview.1.25080.5 | +| System.Threading.Tasks.Dataflow | 10.0.0-preview.1.25080.5 | +| System.Windows.Extensions | 10.0.0-preview.1.25080.5 | +| Text.Analyzers | 3.12.0-beta1.25076.4 | + +[//]: # ( Runtime 10.0.0-preview.1.25080.5) +[dotnet-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/a2280fc3-6358-4f89-8671-3d3535b3e14d/1e3ec98a6c92c9494e7012b80565b886/dotnet-runtime-10.0.0-preview.1.25080.5-linux-arm.tar.gz +[dotnet-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/67154807-282d-4a26-9fe6-16e561b763e9/1d556e1d17d9157dcbdcf09f1c523df8/dotnet-runtime-10.0.0-preview.1.25080.5-linux-arm64.tar.gz +[dotnet-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0bb2df4f-2569-41d3-9543-f23cfbb25ce8/a64254fbc283ce409edb78d001561517/dotnet-runtime-10.0.0-preview.1.25080.5-linux-musl-arm.tar.gz +[dotnet-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/6ecc182b-eb3a-4d4f-ab75-5c6c565d643a/70922b6f9f596549975d0c6c7672d558/dotnet-runtime-10.0.0-preview.1.25080.5-linux-musl-arm64.tar.gz +[dotnet-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/a580cb7d-1394-4571-9779-b62520571fa5/0ddc6d2478352d792caef0a21c8682e8/dotnet-runtime-10.0.0-preview.1.25080.5-linux-musl-x64.tar.gz +[dotnet-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/527fa5e3-8b4b-482e-9c1f-c3cbf8cc0edc/259b1cf466fa1da69dafb26ef142b4cc/dotnet-runtime-10.0.0-preview.1.25080.5-linux-x64.tar.gz +[dotnet-runtime-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/cb7b8c4b-fe21-46ee-b72b-294e79f49846/2e9562e8d08ec97f74f6552e8828e46c/dotnet-runtime-10.0.0-preview.1.25080.5-osx-arm64.pkg +[dotnet-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/a51a8de7-b1c0-4453-913b-b7421273ce3f/fef20f679bb688529545845a64f7ba2d/dotnet-runtime-10.0.0-preview.1.25080.5-osx-arm64.tar.gz +[dotnet-runtime-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/b9fcea59-8c61-4503-b446-1ca95701ec77/460b9b71fb176bc34cfecfc5627ea021/dotnet-runtime-10.0.0-preview.1.25080.5-osx-x64.pkg +[dotnet-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/c0eb2952-c1e2-4d70-bdd6-96e7ff3f1350/efad700ef7526e474ed91611c1765272/dotnet-runtime-10.0.0-preview.1.25080.5-osx-x64.tar.gz +[dotnet-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/d65a97aa-e553-4464-8cbb-32519336d4fd/2f46b6e1bd72f20be6d6422577ded62d/dotnet-runtime-10.0.0-preview.1.25080.5-win-arm64.exe +[dotnet-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/cdb1f047-efad-4266-b42a-b2a0a0d09299/28afa1f2bcc22cecf386f7da2e4703e0/dotnet-runtime-10.0.0-preview.1.25080.5-win-arm64.zip +[dotnet-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/ce675a23-8512-43b7-a8c2-73e28bce67df/9c98915ed9941173d8f6f243b3592614/dotnet-runtime-10.0.0-preview.1.25080.5-win-x64.exe +[dotnet-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/87413417-df12-489a-8cf1-a511861afcb2/6170b7a604ece4b66520e4a5f6f96415/dotnet-runtime-10.0.0-preview.1.25080.5-win-x64.zip +[dotnet-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/6004f02c-a9e7-4abf-adfa-cad7446bd5f0/8407790f3ce1482f98647b7ec15bd252/dotnet-runtime-10.0.0-preview.1.25080.5-win-x86.exe +[dotnet-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/83f76c82-2fde-4f46-a675-1509d37500b8/ff850c7fb50a031082dc576c6e6174a8/dotnet-runtime-10.0.0-preview.1.25080.5-win-x86.zip + +[//]: # ( WindowsDesktop 10.0.0-preview.1.25080.4) +[windowsdesktop-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/186737b9-6619-499a-a49d-9d47920e091c/7dfa59a27106f6c93f38caa6393e0106/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-arm64.exe +[windowsdesktop-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/4c52ec3d-f015-4e36-91c3-038f81611100/feb2ec87f1e079e6bdc452e449fc33c2/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-x64.exe +[windowsdesktop-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/8e4dbe38-608c-4905-bf19-7463ec8bab22/90d87611a88e829aceea7a43f6b9209c/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-x86.exe + +[//]: # ( ASP 10.0.0-preview.1.25120.3) +[aspnetcore-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/33517412-d354-4852-a9e2-d6c7c83297e9/361cd00f354832d42bcdf19fd2094a36/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-arm.tar.gz +[aspnetcore-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0b4a8c7d-9b85-49d4-82b0-e2f45f1f61ac/4286d964b1600e1f3ee5d56f7c3b65cd/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-arm64.tar.gz +[aspnetcore-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/4fe69b65-885c-4235-9aa6-5758e6ac76a0/90be90ae3aab95d59b60f5889c5c6062/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-musl-x64.tar.gz +[aspnetcore-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/de4894a9-20d4-4c58-a748-a2594d097279/bb332c7d3bbec4a642bee7ddc01b86f9/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-x64.tar.gz +[aspnetcore-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/87990395-a0a2-472f-a255-cc2639a9f5cb/06dd746d44a37da5325ab260dfa4e5f0/aspnetcore-runtime-10.0.0-preview.1.25120.3-osx-arm64.tar.gz +[aspnetcore-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/c7e3044f-0976-4051-ac6a-019982f4f4c7/58a188f7893c276ca2ab0f3b95c94756/aspnetcore-runtime-10.0.0-preview.1.25120.3-osx-x64.tar.gz +[aspnetcore-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/e07bbd39-eb6b-4910-b724-5daeea05bb99/eac8f2f444f7c74ba7043f30b6b67b0c/aspnetcore-runtime-10.0.0-preview.1.25120.3-win-x64.exe +[aspnetcore-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/4265066d-cbe6-4f80-9177-08a799208cd5/1c78e9f8000efef53555059ca7388ed0/aspnetcore-runtime-10.0.0-preview.1.25120.3-win-x86.exe +[dotnet-hosting-win.exe]: https://download.visualstudio.microsoft.com/download/pr/d60623ee-292d-464d-8444-54a06b95900a/07ca68bd595ce56e097efd7b7573dff2/dotnet-hosting-10.0.0-preview.1.25120.3-win.exe + +[//]: # ( SDK 10.0.100-preview.1.25120.13) +[dotnet-sdk-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/421388aa-682e-4ac0-b001-235c68ac75c6/2823384aea24f8fb43d0e8cf14b4c479/dotnet-sdk-10.0.100-preview.1.25120.13-linux-arm.tar.gz +[dotnet-sdk-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/1889d4a2-7d5a-4048-b53f-b47ec6f73bbe/f550d0103110905cc472afa3ecf4223e/dotnet-sdk-10.0.100-preview.1.25120.13-linux-arm64.tar.gz +[dotnet-sdk-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0a51b91a-f741-4903-8d01-29d81817c839/549fb11b7fc5bd0859adbf47f229dcbb/dotnet-sdk-10.0.100-preview.1.25120.13-linux-musl-arm.tar.gz +[dotnet-sdk-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/ece436cd-7c74-4c96-8d7b-bbca4f3f2dad/d50fac6150ce404dbb6ba7d779545f7c/dotnet-sdk-10.0.100-preview.1.25120.13-linux-musl-x64.tar.gz +[dotnet-sdk-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/ed3f7a1c-0aeb-4bff-8f93-db1b48c13dbc/dbd62e4564414b7de38e32ca47a0e9e3/dotnet-sdk-10.0.100-preview.1.25120.13-linux-x64.tar.gz +[dotnet-sdk-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/a826c444-678e-487e-8c4e-ebfc14afca99/d22a35c78682369beb65d20afc995a7e/dotnet-sdk-10.0.100-preview.1.25120.13-osx-arm64.pkg +[dotnet-sdk-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/22d09ef4-cec4-48e7-be48-e105c9037dd4/33763054cbe2bbefd7d59c1d66e67122/dotnet-sdk-10.0.100-preview.1.25120.13-osx-arm64.tar.gz +[dotnet-sdk-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/80339095-1418-4792-9d81-d7b8dc44a436/d8f1d068666055023d1c98e6d4f8fd60/dotnet-sdk-10.0.100-preview.1.25120.13-osx-x64.pkg +[dotnet-sdk-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/8462c34b-dc1e-4793-aab0-449bd1419d1c/bac3f5d229638e0d8600b9d4b304c26e/dotnet-sdk-10.0.100-preview.1.25120.13-osx-x64.tar.gz +[dotnet-sdk-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/e90edbd1-6773-4124-b77c-7b8b5bf99e81/f048851867191b87831ae6f597c67b26/dotnet-sdk-10.0.100-preview.1.25120.13-win-arm64.exe +[dotnet-sdk-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/f1b89b1d-3a64-411a-b404-928858fb2e11/0e8557a1eb130e436c8c549e736d3f5e/dotnet-sdk-10.0.100-preview.1.25120.13-win-arm64.zip +[dotnet-sdk-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/f8fc17aa-29b7-4a34-b164-3c91e2d5a728/9dfcf0628bcd2b6f53d573a100b4e3ca/dotnet-sdk-10.0.100-preview.1.25120.13-win-x64.exe +[dotnet-sdk-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/fafaef8c-2fef-45d9-bc1d-df26963df6ba/94fee230c7e4fc7459fcd019ea1a7675/dotnet-sdk-10.0.100-preview.1.25120.13-win-x64.zip +[dotnet-sdk-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/e85359f9-74c9-4b48-a8f5-c2ff0b956814/3ecd8bba91d814712645f96b052681fe/dotnet-sdk-10.0.100-preview.1.25120.13-win-x86.exe +[dotnet-sdk-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/c28c614d-c45f-43f6-bbb8-cf37dc23bfdd/025de2053efdd63c43b0fe174b043fec/dotnet-sdk-10.0.100-preview.1.25120.13-win-x86.zip From 875d5e9ab67a51313de98c2db2459ce11c144915 Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 25 Feb 2025 10:10:30 -0800 Subject: [PATCH 41/44] Add files via upload --- release-notes/10.0/releases.json | 524 +++++++++++++++++++++++++++++++ 1 file changed, 524 insertions(+) create mode 100644 release-notes/10.0/releases.json diff --git a/release-notes/10.0/releases.json b/release-notes/10.0/releases.json new file mode 100644 index 0000000000..b4fd03ca0a --- /dev/null +++ b/release-notes/10.0/releases.json @@ -0,0 +1,524 @@ +{ + "channel-version": "10.0", + "latest-release": "10.0.0-preview.1", + "latest-release-date": "2024-02-25", + "latest-runtime": "10.0.0-preview.1.25080.5", + "latest-sdk": "10.0.100-preview.1.25120.13", + "support-phase": "preview", + "release-type": "lts", + "lifecycle-policy": "https://aka.ms/dotnetcoresupport", + "releases": [ + { + "release-date": "2024-02-25", + "release-version": "10.0.0-preview.1", + "security": false, + "cve-list": [], + "release-notes": "https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview1/10.0.0-preview.1.md", + "runtime": { + "version": "10.0.0-preview.1.25080.5", + "version-display": "10.0.0-preview.1", + "vs-version": "", + "vs-mac-version": "", + "files": [ + { + "name": "dotnet-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/a2280fc3-6358-4f89-8671-3d3535b3e14d/1e3ec98a6c92c9494e7012b80565b886/dotnet-runtime-10.0.0-preview.1.25080.5-linux-arm.tar.gz", + "hash": "8e91e965eace3ac1b472f8d9d2cba51537606cb0ae9b2245dde7f2f9d95f8660800cb609a7152b3efeb1e01663070c80454e6180890ccb81d6533fcc891d124e" + }, + { + "name": "dotnet-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/67154807-282d-4a26-9fe6-16e561b763e9/1d556e1d17d9157dcbdcf09f1c523df8/dotnet-runtime-10.0.0-preview.1.25080.5-linux-arm64.tar.gz", + "hash": "840d229fc19322093ed5a18c123b5a322e92cad26926bdb709ee382076864a9e89a4dd0ecc13e5e48542b1732ebd19ba65cad1c1b63b94268d38e78bbe6b6b75" + }, + { + "name": "dotnet-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/0bb2df4f-2569-41d3-9543-f23cfbb25ce8/a64254fbc283ce409edb78d001561517/dotnet-runtime-10.0.0-preview.1.25080.5-linux-musl-arm.tar.gz", + "hash": "b907d97484966266c26732fbb6141ebb914be822589fedad26add9680ad6e0dc7d0068507241c0fbae124a9f4a9571838080387e21de81833fc7399be1bdd688" + }, + { + "name": "dotnet-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/6ecc182b-eb3a-4d4f-ab75-5c6c565d643a/70922b6f9f596549975d0c6c7672d558/dotnet-runtime-10.0.0-preview.1.25080.5-linux-musl-arm64.tar.gz", + "hash": "2cc3f7715ef6d9986db73376bcbe7c6cdbb9f7a58b43e7be051c2ed457f7efc248a3c4dc87738467ad99a82ca385eea53ebc8af11c18900f5f980c8b76d9a475" + }, + { + "name": "dotnet-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a580cb7d-1394-4571-9779-b62520571fa5/0ddc6d2478352d792caef0a21c8682e8/dotnet-runtime-10.0.0-preview.1.25080.5-linux-musl-x64.tar.gz", + "hash": "93638a5e766b5859ae58ec3ba5dd81a60a0e6e2e4265d09b1bd71e42987216def1e94aa1c398e33d20baf6b7c021818cee111173b5771ff0ce2bcf56cc964c01" + }, + { + "name": "dotnet-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/527fa5e3-8b4b-482e-9c1f-c3cbf8cc0edc/259b1cf466fa1da69dafb26ef142b4cc/dotnet-runtime-10.0.0-preview.1.25080.5-linux-x64.tar.gz", + "hash": "b704dfed083d3623024ee96ea6cb8ff6d5d7e1d6f43a27b1b4750a89193f64a966a3211b71f9e77bc7601532db992df38c34d1d1542f060082ae010d532437aa" + }, + { + "name": "dotnet-runtime-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/cb7b8c4b-fe21-46ee-b72b-294e79f49846/2e9562e8d08ec97f74f6552e8828e46c/dotnet-runtime-10.0.0-preview.1.25080.5-osx-arm64.pkg", + "hash": "240c3edb434f3dc4472922306b4f840f45f2730d6fa2e06c1a5b9371f3f2e5d8800efc98a78170ac628b42a2f12af15f903c4543fec834d7c7b174f1eeee7c5e" + }, + { + "name": "dotnet-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a51a8de7-b1c0-4453-913b-b7421273ce3f/fef20f679bb688529545845a64f7ba2d/dotnet-runtime-10.0.0-preview.1.25080.5-osx-arm64.tar.gz", + "hash": "74ea61c16a06f86c6788d46c4d75726f6dd57fbe4c4593eff52a8b1472fdf805abe61830873fd3ef4178a75238f7dcfdf787b71e39a8415ed0f6ce04c4ba1e40" + }, + { + "name": "dotnet-runtime-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/b9fcea59-8c61-4503-b446-1ca95701ec77/460b9b71fb176bc34cfecfc5627ea021/dotnet-runtime-10.0.0-preview.1.25080.5-osx-x64.pkg", + "hash": "8a80455efde8ef4c0dc1c7f0ec5ba5062daacf91a43b575ab8e5fc2585245212e4f9c178e1702de21f6d9bf66e3181171552e960ab59cdb2e474d207036ef86c" + }, + { + "name": "dotnet-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/c0eb2952-c1e2-4d70-bdd6-96e7ff3f1350/efad700ef7526e474ed91611c1765272/dotnet-runtime-10.0.0-preview.1.25080.5-osx-x64.tar.gz", + "hash": "6ea1da47b60e5361964fff79b9fa3dccc087c9773d342c34def7ee898eaf6de9f46da66644847d981615dedf39698610f850dd64f209bd4410e055f50b3b7e09" + }, + { + "name": "dotnet-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/d65a97aa-e553-4464-8cbb-32519336d4fd/2f46b6e1bd72f20be6d6422577ded62d/dotnet-runtime-10.0.0-preview.1.25080.5-win-arm64.exe", + "hash": "638af12d1f69479bf47751c6127d2e599ae5d305b83c6c892c4e7fe9d7e1a50b91272898a425280f9c7f2237234cd9d13d014310bea5c05ca7621119db34ee97" + }, + { + "name": "dotnet-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/cdb1f047-efad-4266-b42a-b2a0a0d09299/28afa1f2bcc22cecf386f7da2e4703e0/dotnet-runtime-10.0.0-preview.1.25080.5-win-arm64.zip", + "hash": "a9431c593af26ba07bca7cbfee79959e0103aae5ef2918e57890a5674416d8244e6a7c31a7d8b2da7c6224d1e2abc8d1cbd49255767aaa9edfc44f2b2c6d5a6e" + }, + { + "name": "dotnet-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/ce675a23-8512-43b7-a8c2-73e28bce67df/9c98915ed9941173d8f6f243b3592614/dotnet-runtime-10.0.0-preview.1.25080.5-win-x64.exe", + "hash": "51b3ae834a5498f5eaf508bc6f7de02460d43737baa3ef494367946875516adb1a08d74a7d8f353249c1e92a6f86be4dc09da2acf3777d2975157cf20d4da4b6" + }, + { + "name": "dotnet-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/87413417-df12-489a-8cf1-a511861afcb2/6170b7a604ece4b66520e4a5f6f96415/dotnet-runtime-10.0.0-preview.1.25080.5-win-x64.zip", + "hash": "70067ab2024b104502393066b7f321a580ba99d95608ea67945b5705b487bd614bc0f1ea0653d23e257763fdbdf2fa5351ddc8734a60c6400ca15ad806ba07e7" + }, + { + "name": "dotnet-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/6004f02c-a9e7-4abf-adfa-cad7446bd5f0/8407790f3ce1482f98647b7ec15bd252/dotnet-runtime-10.0.0-preview.1.25080.5-win-x86.exe", + "hash": "8398d338f02981bc79f6dc8ffe834d7bd6a922862ab2d7e74094a4372d189419503040879f696db14ebc19ba2f06dcfbd215164b4538947477ee2b7b5dc0d6fa" + }, + { + "name": "dotnet-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/83f76c82-2fde-4f46-a675-1509d37500b8/ff850c7fb50a031082dc576c6e6174a8/dotnet-runtime-10.0.0-preview.1.25080.5-win-x86.zip", + "hash": "2764e0d40d5bf5cdab623d6ec1fcabc3f065f6e44a06f9fa464f0d761638497a8cf455f52feb145588abb8b1b83898453b14afff9e20e7a3518574e69bb63cf2" + } + ] + }, + "sdk": { + "version": "10.0.100-preview.1.25120.13", + "version-display": "10.0.100-preview.1", + "runtime-version": "10.0.0-preview.1.25080.5", + "vs-version": "17.14", + "vs-mac-version": "", + "vs-support": "Visual Studio 2022 (v17.14 Preview 1)", + "vs-mac-support": "", + "csharp-version": "13.0", + "fsharp-version": "9.0", + "vb-version": "16.9", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/421388aa-682e-4ac0-b001-235c68ac75c6/2823384aea24f8fb43d0e8cf14b4c479/dotnet-sdk-10.0.100-preview.1.25120.13-linux-arm.tar.gz", + "hash": "d3a76713855026bcb131b97596750e26a43180be9f875811208a3b1b7d88c81e96cc769e97df4c7397a3baace3098f848a8345df6560703ace765db8b21092d8" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/1889d4a2-7d5a-4048-b53f-b47ec6f73bbe/f550d0103110905cc472afa3ecf4223e/dotnet-sdk-10.0.100-preview.1.25120.13-linux-arm64.tar.gz", + "hash": "645b618ab7fbcce38f82b2ca9a5fab6b11742dc9ca53f4bb65654dbe8385e1789aed034162436af998c59e418b5031607e71856dc38848717a74f8f3292e0c4b" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/0a51b91a-f741-4903-8d01-29d81817c839/549fb11b7fc5bd0859adbf47f229dcbb/dotnet-sdk-10.0.100-preview.1.25120.13-linux-musl-arm.tar.gz", + "hash": "361c46feb05350d07c969c88cc1a821152cb21535d544817c7bac54914b84d526e3e5aa642fb9cc5dc331ef008bb205138841ad222ec3b9a06b8d08741fae95d" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/8044b967-d629-406b-accd-6fccc09e9ae0/9d67c958431f0eb0f45b3c0f1bff81bc/dotnet-sdk-10.0.100-preview.1.25120.13-linux-musl-arm64.tar.gz", + "hash": "916807107cdee561f530d393d80c1fc3be55099436f324ef03d2a92792b3cab7df9fc3ccc87c58aad5520232f807de2c4258af4a24eb13715c360cdcf54efa3e" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/ece436cd-7c74-4c96-8d7b-bbca4f3f2dad/d50fac6150ce404dbb6ba7d779545f7c/dotnet-sdk-10.0.100-preview.1.25120.13-linux-musl-x64.tar.gz", + "hash": "35a2ce93ba7f39a08fd177118aa0ccfe8c90055b8df98d3e1340644a91c3ea90afc0201bffb0ceb54882313fdd9d3ab01ac23d6f8ccb3ef0670a1af825cd3257" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/ed3f7a1c-0aeb-4bff-8f93-db1b48c13dbc/dbd62e4564414b7de38e32ca47a0e9e3/dotnet-sdk-10.0.100-preview.1.25120.13-linux-x64.tar.gz", + "hash": "98687cb89859fe1847a0cae6c752ce2309231e5ef26ee5285893a5b5794fbfd51ddf8510deb5f700ea298ceffd9cbc0f9f26c9c7b4d90044a82bdd2b98abfcc4" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a826c444-678e-487e-8c4e-ebfc14afca99/d22a35c78682369beb65d20afc995a7e/dotnet-sdk-10.0.100-preview.1.25120.13-osx-arm64.pkg", + "hash": "14f83d81cbafcc572a70100037c677911368970e4b20dd471d69595813b688615577b393cb4f8579b284493341b7642ad2f2d00171dd9d1d40d35e886e2ed2dc" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/22d09ef4-cec4-48e7-be48-e105c9037dd4/33763054cbe2bbefd7d59c1d66e67122/dotnet-sdk-10.0.100-preview.1.25120.13-osx-arm64.tar.gz", + "hash": "5e98db2acaacfb3e91ab56fd369a422587060cd4cdf3b6411bc5214d59b985142c459f650ea6b63b6af8f1fffd2f5e39d685b17950814a8b131e57b30e1c2f48" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/80339095-1418-4792-9d81-d7b8dc44a436/d8f1d068666055023d1c98e6d4f8fd60/dotnet-sdk-10.0.100-preview.1.25120.13-osx-x64.pkg", + "hash": "29900a2b93424661ba0300671be017629ca5c5183cdddbeaecae2666f8a5ea6c26e415b7f2286a6644efa27523ebb0f61080b9fad82f85dc9c648344af36268d" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/8462c34b-dc1e-4793-aab0-449bd1419d1c/bac3f5d229638e0d8600b9d4b304c26e/dotnet-sdk-10.0.100-preview.1.25120.13-osx-x64.tar.gz", + "hash": "5f60bd5a013e59cfb674b7d2e9333b4e88d8bc8645e8d18cca751e356286986f371d9f217675f703c85c515159e0f74ef54d60e5c7f717c1ee469a7684a57f5d" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/e90edbd1-6773-4124-b77c-7b8b5bf99e81/f048851867191b87831ae6f597c67b26/dotnet-sdk-10.0.100-preview.1.25120.13-win-arm64.exe", + "hash": "0a676d984d6b67e4cf8b7bc540c777fd50a0b70a3cfc66cdc22719f2b6d9802e66d9fc7bba7388745e8340a92c9a990b00576bcf008bf04f1848f380f563ad5b" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f1b89b1d-3a64-411a-b404-928858fb2e11/0e8557a1eb130e436c8c549e736d3f5e/dotnet-sdk-10.0.100-preview.1.25120.13-win-arm64.zip", + "hash": "42bc6fa5fb394801925eff1f296f33deebcbb9e0d506c2a7cbd345b38bbc0f26244df16fc999be62c6ea3b10ec50910650a548d500de3ce87cfcbc9d269a5794" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f8fc17aa-29b7-4a34-b164-3c91e2d5a728/9dfcf0628bcd2b6f53d573a100b4e3ca/dotnet-sdk-10.0.100-preview.1.25120.13-win-x64.exe", + "hash": "cf6f4f097b15488bc027171f16a15a11eca65b0aba4630e998026ebdd8501757f8b68f6be6cde16b333c35392394f8f8c0dc5b4aac4b0df7609376cc6ba151c8" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/fafaef8c-2fef-45d9-bc1d-df26963df6ba/94fee230c7e4fc7459fcd019ea1a7675/dotnet-sdk-10.0.100-preview.1.25120.13-win-x64.zip", + "hash": "f574e68dbb4214679a123f2527fe0478c7a7d2ca6900c81e2cfec03984421a894d8e1304a5683f077185b71b4491ed12d449636620f96b640156aa251f4a6a53" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/e85359f9-74c9-4b48-a8f5-c2ff0b956814/3ecd8bba91d814712645f96b052681fe/dotnet-sdk-10.0.100-preview.1.25120.13-win-x86.exe", + "hash": "ae9f4b1b82c5be882e6c112e146e20d50f8fcd6e700263088be2ede90638a62ccd2dbb3c72407abaab636c0478b7a77fe85e60671463dd31e1aa864f33820a6f" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/c28c614d-c45f-43f6-bbb8-cf37dc23bfdd/025de2053efdd63c43b0fe174b043fec/dotnet-sdk-10.0.100-preview.1.25120.13-win-x86.zip", + "hash": "5cb4fbc77bcce3cb6ab158e24d6f10697baedaf236b55fc1b80691ba094820ac4c0b57d8c66af33fa68076f06aa3a679a3383fd095775521a6d13fd0faa59cc4" + } + ] + }, + "sdks": [ + { + "version": "10.0.100-preview.1.25120.13", + "version-display": "10.0.100-preview.1", + "runtime-version": "10.0.0-preview.1.25080.5", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "", + "vs-mac-support": "", + "csharp-version": "13.0", + "fsharp-version": "9.0", + "vb-version": "16.9", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/421388aa-682e-4ac0-b001-235c68ac75c6/2823384aea24f8fb43d0e8cf14b4c479/dotnet-sdk-10.0.100-preview.1.25120.13-linux-arm.tar.gz", + "hash": "d3a76713855026bcb131b97596750e26a43180be9f875811208a3b1b7d88c81e96cc769e97df4c7397a3baace3098f848a8345df6560703ace765db8b21092d8" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/1889d4a2-7d5a-4048-b53f-b47ec6f73bbe/f550d0103110905cc472afa3ecf4223e/dotnet-sdk-10.0.100-preview.1.25120.13-linux-arm64.tar.gz", + "hash": "645b618ab7fbcce38f82b2ca9a5fab6b11742dc9ca53f4bb65654dbe8385e1789aed034162436af998c59e418b5031607e71856dc38848717a74f8f3292e0c4b" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/0a51b91a-f741-4903-8d01-29d81817c839/549fb11b7fc5bd0859adbf47f229dcbb/dotnet-sdk-10.0.100-preview.1.25120.13-linux-musl-arm.tar.gz", + "hash": "361c46feb05350d07c969c88cc1a821152cb21535d544817c7bac54914b84d526e3e5aa642fb9cc5dc331ef008bb205138841ad222ec3b9a06b8d08741fae95d" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/8044b967-d629-406b-accd-6fccc09e9ae0/9d67c958431f0eb0f45b3c0f1bff81bc/dotnet-sdk-10.0.100-preview.1.25120.13-linux-musl-arm64.tar.gz", + "hash": "916807107cdee561f530d393d80c1fc3be55099436f324ef03d2a92792b3cab7df9fc3ccc87c58aad5520232f807de2c4258af4a24eb13715c360cdcf54efa3e" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/ece436cd-7c74-4c96-8d7b-bbca4f3f2dad/d50fac6150ce404dbb6ba7d779545f7c/dotnet-sdk-10.0.100-preview.1.25120.13-linux-musl-x64.tar.gz", + "hash": "35a2ce93ba7f39a08fd177118aa0ccfe8c90055b8df98d3e1340644a91c3ea90afc0201bffb0ceb54882313fdd9d3ab01ac23d6f8ccb3ef0670a1af825cd3257" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/ed3f7a1c-0aeb-4bff-8f93-db1b48c13dbc/dbd62e4564414b7de38e32ca47a0e9e3/dotnet-sdk-10.0.100-preview.1.25120.13-linux-x64.tar.gz", + "hash": "98687cb89859fe1847a0cae6c752ce2309231e5ef26ee5285893a5b5794fbfd51ddf8510deb5f700ea298ceffd9cbc0f9f26c9c7b4d90044a82bdd2b98abfcc4" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a826c444-678e-487e-8c4e-ebfc14afca99/d22a35c78682369beb65d20afc995a7e/dotnet-sdk-10.0.100-preview.1.25120.13-osx-arm64.pkg", + "hash": "14f83d81cbafcc572a70100037c677911368970e4b20dd471d69595813b688615577b393cb4f8579b284493341b7642ad2f2d00171dd9d1d40d35e886e2ed2dc" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/22d09ef4-cec4-48e7-be48-e105c9037dd4/33763054cbe2bbefd7d59c1d66e67122/dotnet-sdk-10.0.100-preview.1.25120.13-osx-arm64.tar.gz", + "hash": "5e98db2acaacfb3e91ab56fd369a422587060cd4cdf3b6411bc5214d59b985142c459f650ea6b63b6af8f1fffd2f5e39d685b17950814a8b131e57b30e1c2f48" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/80339095-1418-4792-9d81-d7b8dc44a436/d8f1d068666055023d1c98e6d4f8fd60/dotnet-sdk-10.0.100-preview.1.25120.13-osx-x64.pkg", + "hash": "29900a2b93424661ba0300671be017629ca5c5183cdddbeaecae2666f8a5ea6c26e415b7f2286a6644efa27523ebb0f61080b9fad82f85dc9c648344af36268d" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/8462c34b-dc1e-4793-aab0-449bd1419d1c/bac3f5d229638e0d8600b9d4b304c26e/dotnet-sdk-10.0.100-preview.1.25120.13-osx-x64.tar.gz", + "hash": "5f60bd5a013e59cfb674b7d2e9333b4e88d8bc8645e8d18cca751e356286986f371d9f217675f703c85c515159e0f74ef54d60e5c7f717c1ee469a7684a57f5d" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/e90edbd1-6773-4124-b77c-7b8b5bf99e81/f048851867191b87831ae6f597c67b26/dotnet-sdk-10.0.100-preview.1.25120.13-win-arm64.exe", + "hash": "0a676d984d6b67e4cf8b7bc540c777fd50a0b70a3cfc66cdc22719f2b6d9802e66d9fc7bba7388745e8340a92c9a990b00576bcf008bf04f1848f380f563ad5b" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f1b89b1d-3a64-411a-b404-928858fb2e11/0e8557a1eb130e436c8c549e736d3f5e/dotnet-sdk-10.0.100-preview.1.25120.13-win-arm64.zip", + "hash": "42bc6fa5fb394801925eff1f296f33deebcbb9e0d506c2a7cbd345b38bbc0f26244df16fc999be62c6ea3b10ec50910650a548d500de3ce87cfcbc9d269a5794" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f8fc17aa-29b7-4a34-b164-3c91e2d5a728/9dfcf0628bcd2b6f53d573a100b4e3ca/dotnet-sdk-10.0.100-preview.1.25120.13-win-x64.exe", + "hash": "cf6f4f097b15488bc027171f16a15a11eca65b0aba4630e998026ebdd8501757f8b68f6be6cde16b333c35392394f8f8c0dc5b4aac4b0df7609376cc6ba151c8" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/fafaef8c-2fef-45d9-bc1d-df26963df6ba/94fee230c7e4fc7459fcd019ea1a7675/dotnet-sdk-10.0.100-preview.1.25120.13-win-x64.zip", + "hash": "f574e68dbb4214679a123f2527fe0478c7a7d2ca6900c81e2cfec03984421a894d8e1304a5683f077185b71b4491ed12d449636620f96b640156aa251f4a6a53" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/e85359f9-74c9-4b48-a8f5-c2ff0b956814/3ecd8bba91d814712645f96b052681fe/dotnet-sdk-10.0.100-preview.1.25120.13-win-x86.exe", + "hash": "ae9f4b1b82c5be882e6c112e146e20d50f8fcd6e700263088be2ede90638a62ccd2dbb3c72407abaab636c0478b7a77fe85e60671463dd31e1aa864f33820a6f" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/c28c614d-c45f-43f6-bbb8-cf37dc23bfdd/025de2053efdd63c43b0fe174b043fec/dotnet-sdk-10.0.100-preview.1.25120.13-win-x86.zip", + "hash": "5cb4fbc77bcce3cb6ab158e24d6f10697baedaf236b55fc1b80691ba094820ac4c0b57d8c66af33fa68076f06aa3a679a3383fd095775521a6d13fd0faa59cc4" + } + ] + } + ], + "aspnetcore-runtime": { + "version": "10.0.0-preview.1.25120.3", + "version-display": "10.0.0-preview.1", + "version-aspnetcoremodule": [ + "20.0.25051.0" + ], + "vs-version": "", + "files": [ + { + "name": "aspnetcore-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/33517412-d354-4852-a9e2-d6c7c83297e9/361cd00f354832d42bcdf19fd2094a36/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-arm.tar.gz", + "hash": "253c3e18705954121c843d367e3b2cbb8ffc46649f2e0db255b35833163e5dec6b5df41c4970102281af68cf8d912222db168de39e2171af39b0cc163bc17eb7" + }, + { + "name": "aspnetcore-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/0b4a8c7d-9b85-49d4-82b0-e2f45f1f61ac/4286d964b1600e1f3ee5d56f7c3b65cd/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-arm64.tar.gz", + "hash": "4f996f48fd215b63b84daf24a4ab08dd5b6877dab6bef0e6c35ec945152b6e5b22dcba9d50ac1198d5876313f0bcd0c800aa5a8cc83ec7647e77466f74dac22e" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/5cdd9ee9-cf13-4db5-bb3e-a09183be4ef2/3236e065b593cc2bb0bffc0c976f8e87/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-musl-arm.tar.gz", + "hash": "465797b3b8d1552e9a46092481f1c816827bf01c532cb8b7aae110870a4ec9f12500adb91edafbcbbf1ae46338a4851845d56de21274d5c6c2b6ccb395d9514f" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/eedaffd0-7baf-49e2-9291-c9f57233d639/34f0f6b835f35306649977fe772e510c/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-musl-arm64.tar.gz", + "hash": "7709a4a05a0e56a4a585089051159db840c0a8d3072bb936076b1c70c89c2f1a0b54783e64d762a2d0dd61b6bb5144dbacad567ba46992196c41014a51badccf" + }, + { + "name": "aspnetcore-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4fe69b65-885c-4235-9aa6-5758e6ac76a0/90be90ae3aab95d59b60f5889c5c6062/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-musl-x64.tar.gz", + "hash": "015564ad968b0916f122aaebcc71bd6800ac480179cb7423dca45450b9e61d271207a86be5a7cc0c1628b1e7fa4906133819d47beaa180ca75c04101afcee9b8" + }, + { + "name": "aspnetcore-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/de4894a9-20d4-4c58-a748-a2594d097279/bb332c7d3bbec4a642bee7ddc01b86f9/aspnetcore-runtime-10.0.0-preview.1.25120.3-linux-x64.tar.gz", + "hash": "bf5d4f5c1dfa63e937f4d0e6b800283437a3df5c55b2e426c3efb0b8dc9794ba704f5d4468acc130f0f3b81ace3e3d46ee11945bbc5f34bbd29d7b54c36630fc" + }, + { + "name": "aspnetcore-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/87990395-a0a2-472f-a255-cc2639a9f5cb/06dd746d44a37da5325ab260dfa4e5f0/aspnetcore-runtime-10.0.0-preview.1.25120.3-osx-arm64.tar.gz", + "hash": "43b24242a57da6735bef26f4a039aa1c9bc7971f4d2d8ba28a8c019da133207f180d672144e4e122e274a7da11c65ef8932e9544d673d506b9e25ec1de740616" + }, + { + "name": "aspnetcore-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/c7e3044f-0976-4051-ac6a-019982f4f4c7/58a188f7893c276ca2ab0f3b95c94756/aspnetcore-runtime-10.0.0-preview.1.25120.3-osx-x64.tar.gz", + "hash": "5833bd67f1c7e2b16a3bacab66c94c20a3cee2ed9619c7954e6be164b802438eef602d4adaf057a13c729b6e357ff29e923c4be16b852836132848b90c22ed62" + }, + { + "name": "aspnetcore-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4443394e-9eaa-4a80-8c92-26b773ef158e/5a323e1b397f5cf876a45f2cb41a7c23/aspnetcore-runtime-10.0.0-preview.1.25120.3-win-arm64.exe", + "hash": "3b9c557b748b0cc8f0a9b73e0d19a3300049f4adb01e859ffe4d45c7aee81800dfbe43b779755fb51c16c1b1d005e9ef26f0f63226a241567ac5b552bcc8e5c3" + }, + { + "name": "aspnetcore-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a8a4b176-aeba-4f94-bcec-deea3cac9524/2b346db58150eab663f8760524f4e59d/aspnetcore-runtime-10.0.0-preview.1.25120.3-win-arm64.zip", + "hash": "388de23c5d88946f343ea885510faf6ab629dfccbf8fc3db13d516df154d876b55c2b6faf31cbca50910c6ab2802cdc633d92ec57f33d5bb9cba97ca9ef7d95b" + }, + { + "name": "aspnetcore-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/e07bbd39-eb6b-4910-b724-5daeea05bb99/eac8f2f444f7c74ba7043f30b6b67b0c/aspnetcore-runtime-10.0.0-preview.1.25120.3-win-x64.exe", + "hash": "836b26c38e372af0d89b54c449874f56f253a36185c77ee1cd7d81225d0bbab3e842949268b047f8b73563bcbee84e1ec386c754b271ded9f090f8445e332cf5" + }, + { + "name": "aspnetcore-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/f1e8d31e-74c1-4403-ae9e-1634d5c22f11/8ec3bc05fdadc3abc024a06aedcacad2/aspnetcore-runtime-10.0.0-preview.1.25120.3-win-x64.zip", + "hash": "a5e5c941ad8b831c31fe623d0d3675bb9e1b4c1a442a5890061b83ff874e0c106e87fa18394873798c193de8ce0146c90d5903e98c0926929614b15ffdde2f12" + }, + { + "name": "aspnetcore-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/4265066d-cbe6-4f80-9177-08a799208cd5/1c78e9f8000efef53555059ca7388ed0/aspnetcore-runtime-10.0.0-preview.1.25120.3-win-x86.exe", + "hash": "243fb5db98556388120a7213c2950cd9a3a6e87d2c64df29a415f2d6b5f0f76fefbbf032b8f06edc932073503b792d396c36471bed676de2e48da975abff9942" + }, + { + "name": "aspnetcore-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/aaf74849-9427-416f-ae0e-19aebc7329e7/720af364682bcb55b4becab99b798552/aspnetcore-runtime-10.0.0-preview.1.25120.3-win-x86.zip", + "hash": "12ba1b42491c7327358671429bed97ecd1483ad248c2a60c0402e9c29946ca5b38746c8fe006ec683ec7a33efdf8870e4955b122ce39d7bb62febaf5baa93fb3" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/5855c111-50b9-4959-a463-333d117d8d1a/a2a076721d23bab3c6171031c3b5b67e/aspnetcore-runtime-composite-10.0.0-preview.1.25120.3-linux-arm.tar.gz", + "hash": "35b67d2a31281e8ed8a6194d661e78410b5b2c8c552b0568fd24133e108978f5e31f6f7bdd21424cc0b324d1750b0f0b56a066c78694f446749048a6a10aea1e" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/a191a8a7-c74e-475b-92d0-631438150208/76af7990c770c9bcd12d84b1bc5a25c7/aspnetcore-runtime-composite-10.0.0-preview.1.25120.3-linux-arm64.tar.gz", + "hash": "c6dd0af60294bfc9a0de1cf39b859a5cae2c9c54a5ef7182fc4d140bf1b9ab2aee0f117865792dff98fb892a7e9006b6cdc299e0b4c531a7188a9b04d23787fa" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://download.visualstudio.microsoft.com/download/pr/1adb8a1b-0cab-4ae2-b84c-c3fa899518f8/b7dbffbb26d34a20149e34ebb7f4bc98/aspnetcore-runtime-composite-10.0.0-preview.1.25120.3-linux-musl-arm.tar.gz", + "hash": "31ced448fa58247f0653e178e1205afadf4ee85ea8bc6db59a5d71db7d60ebb0ef9b771ca39ac7e3c7faeba37eb4995c23446550d4f5aed2441ce1508ed3a36b" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/6a24bffc-123c-4d4a-b174-2312481ed185/1d7bdeaa14e9d9236a4ef8cd9059fa7e/aspnetcore-runtime-composite-10.0.0-preview.1.25120.3-linux-musl-arm64.tar.gz", + "hash": "631cab0c707240409314e515f65ea7cc67e4be5234fd5d2042f119bcd54ebfa582e4e4bca77501f12f66b7efda5f66cd5dcc390a6561ae85005b6849f5c61afb" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/c80a2588-7d7a-4aa1-9532-4da5a37687e3/74348320688c7c07a7fd5ecb434449aa/aspnetcore-runtime-composite-10.0.0-preview.1.25120.3-linux-musl-x64.tar.gz", + "hash": "ce56388e2cf567bbae78be9e63b7bac5a5f00202357f60c3b68d98d09b5fcc2ae281811cf163192e51a3bce0f3e655927438346a5648b9dfcf85c360993d71d7" + }, + { + "name": "aspnetcore-runtime-composite-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/cf694754-ce2d-47f4-b983-d0c9cb743da0/c430fe30e4e582d66ee7e426f4692add/aspnetcore-runtime-composite-10.0.0-preview.1.25120.3-linux-x64.tar.gz", + "hash": "a9771a74c99e5c4e878e9371e00ed84b243c057ece276209d51d32538fe8db621e4af4245d92a4015b6f071f7b4f8c15a78593f8f8cf089d94012e2def4d10f7" + }, + { + "name": "dotnet-hosting-win.exe", + "rid": "", + "url": "https://download.visualstudio.microsoft.com/download/pr/d60623ee-292d-464d-8444-54a06b95900a/07ca68bd595ce56e097efd7b7573dff2/dotnet-hosting-10.0.0-preview.1.25120.3-win.exe", + "hash": "a417fde9b7e1d143408d74b8a92999337221b2042c558e83e0fba34f8706ed024b3208ffd4b4125ea4e1821d8fffc46b47425a016b272e18fe415c724831f525", + "akams": "https://aka.ms/dotnetcore-10-0-windowshosting" + } + ] + }, + "windowsdesktop": { + "version": "10.0.0-preview.1.25080.4", + "version-display": "10.0.0-preview.1", + "files": [ + { + "name": "windowsdesktop-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/186737b9-6619-499a-a49d-9d47920e091c/7dfa59a27106f6c93f38caa6393e0106/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-arm64.exe", + "hash": "f052ba22d9737c5cc00035ec6484bd0210e53837b2bc07e6bac08627d00213a8aad225912fd163425961d8fdc4ee5ddce0e7cab577e81ba5c79b546ded58eb9f" + }, + { + "name": "windowsdesktop-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://download.visualstudio.microsoft.com/download/pr/b29e97a3-cbfe-4d51-82d8-54ceee017b4e/86c2bfd608fb8fe450373755472820c0/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-arm64.zip", + "hash": "e47be4dee94ac62bcc43389c6e7542002c280c694bb3780b9e67d0255f8701f238ff76f81bb5604b4df3ade478dedcf53a8ef56d9a2f1547e2c23b862a17cb4f" + }, + { + "name": "windowsdesktop-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/4c52ec3d-f015-4e36-91c3-038f81611100/feb2ec87f1e079e6bdc452e449fc33c2/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-x64.exe", + "hash": "796ac79ed66d15cb4f0151645f2e424a60d41d034f6ac647515a93390a9c7d814fe6691c6a209957a14a296f499f0912f744a3fde7e7cc47855f624b8801439b" + }, + { + "name": "windowsdesktop-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://download.visualstudio.microsoft.com/download/pr/6066b369-1693-4140-aa15-d49315d23989/de0df6260e5ca78dd3a936b5d7b702d7/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-x64.zip", + "hash": "0b89790cda0d425771d2a8159bf4db768e5931892392af163ffd34fa494dce1dc22f025efb799a513b77e7a2172a5012bf9211b35d2a9e755bc39c326f487c15" + }, + { + "name": "windowsdesktop-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/8e4dbe38-608c-4905-bf19-7463ec8bab22/90d87611a88e829aceea7a43f6b9209c/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-x86.exe", + "hash": "985a3919b9a31cc74e8a8f448800406ae008b6b512b08b081bc88eb595f3c1a0caff4c65e316023a4cb538d52d4daea440326cbdbc9004d99e2b4b602a78d684" + }, + { + "name": "windowsdesktop-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://download.visualstudio.microsoft.com/download/pr/833281c4-19cb-449f-b15f-dc98f90e6960/d8b098c08ca4c3c9186662375dbcdf5d/windowsdesktop-runtime-10.0.0-preview.1.25080.4-win-x86.zip", + "hash": "608b95683025ca023714ef07c5c6006f34eb01f161517a51039e08210be9d36fcaa1508c03fa63758ffabc1f13de55b902ff0c5032a3753a0e555b84c9e1ad6e" + } + ] + } + } + ] +} \ No newline at end of file From 98f7a0114b5f04e10f955612fe12d608ab1c751d Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 25 Feb 2025 10:11:06 -0800 Subject: [PATCH 42/44] Update releases-index.json --- release-notes/releases-index.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/release-notes/releases-index.json b/release-notes/releases-index.json index d18fb1254b..3779c68a57 100644 --- a/release-notes/releases-index.json +++ b/release-notes/releases-index.json @@ -1,6 +1,19 @@ { "$schema": "https://json.schemastore.org/dotnet-releases-index.json", "releases-index": [ + { + "channel-version": "10.0", + "latest-release": "10.0.0-preview.1", + "latest-release-date": "2024-02-25", + "security": false, + "latest-runtime": "10.0.0-preview.1.25080.5", + "latest-sdk": "10.0.100-preview.1.25120.13", + "product": ".NET", + "support-phase": "preview", + "release-type": "lts", + "releases.json": "https://builds.dotnet.microsoft.com/dotnet/release-metadata/10.0/releases.json", + "supported-os.json": "https://builds.dotnet.microsoft.com/dotnet/release-metadata/10.0/supported-os.json" + }, { "channel-version": "9.0", "latest-release": "9.0.2", From d9be8bde89acd5446652edcecea98c08c83a42e2 Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 25 Feb 2025 10:12:32 -0800 Subject: [PATCH 43/44] Add files via upload --- release-notes/10.0/install-linux.md | 45 ++++++++++++ release-notes/10.0/install-macos.md | 49 +++++++++++++ release-notes/10.0/install-windows.md | 64 +++++++++++++++++ release-notes/10.0/install-workloads.md | 25 +++++++ release-notes/10.0/install.md | 95 +++++++++++++++++++++++++ 5 files changed, 278 insertions(+) create mode 100644 release-notes/10.0/install-linux.md create mode 100644 release-notes/10.0/install-macos.md create mode 100644 release-notes/10.0/install-windows.md create mode 100644 release-notes/10.0/install-workloads.md create mode 100644 release-notes/10.0/install.md diff --git a/release-notes/10.0/install-linux.md b/release-notes/10.0/install-linux.md new file mode 100644 index 0000000000..51b305153c --- /dev/null +++ b/release-notes/10.0/install-linux.md @@ -0,0 +1,45 @@ +# .NET 10 installation instructions for Linux + +The following instructions demonstrate installing .NET 10 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. + +[.NET 10 Required Packages](os-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/10.0) +- [.NET 10 release notes](README.md) + +[Container images](https://hub.docker.com/_/microsoft-dotnet) are provided for Linux (Alpine, Debian, and Ubuntu). + +## 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/ed3f7a1c-0aeb-4bff-8f93-db1b48c13dbc/dbd62e4564414b7de38e32ca47a0e9e3/dotnet-sdk-10.0.100-preview.1.25120.13-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 +10.0.100-preview.1.25120.13 +``` + +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/10.0/install-macos.md b/release-notes/10.0/install-macos.md new file mode 100644 index 0000000000..23abe71d3b --- /dev/null +++ b/release-notes/10.0/install-macos.md @@ -0,0 +1,49 @@ +# .NET 10 installation instructions for macOS + +The following instructions demonstrate installing .NET 10 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/10.0) +- [.NET 10 release notes](README.md) + +[Container images](https://hub.docker.com/_/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/8462c34b-dc1e-4793-aab0-449bd1419d1c/bac3f5d229638e0d8600b9d4b304c26e/dotnet-sdk-10.0.100-preview.1.25120.13-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 +10.0.100-preview.1.25120.13 +``` + +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/10.0/install-windows.md b/release-notes/10.0/install-windows.md new file mode 100644 index 0000000000..2dc3be5f64 --- /dev/null +++ b/release-notes/10.0/install-windows.md @@ -0,0 +1,64 @@ +# .NET 10 installation instructions for Windows + +The following instructions demonstrate installing .NET 10 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/10.0) +- [.NET 10 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 10 runtime: `winget install dotnet-runtime-10` +- To install the .NET 10 SDK: `winget install dotnet-sdk-10` +- 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/f8fc17aa-29b7-4a34-b164-3c91e2d5a728/9dfcf0628bcd2b6f53d573a100b4e3ca/dotnet-sdk-10.0.100-preview.1.25120.13-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 +10.0.100-preview.1.25120.13 +``` + +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/10.0/install-workloads.md b/release-notes/10.0/install-workloads.md new file mode 100644 index 0000000000..11e20acad3 --- /dev/null +++ b/release-notes/10.0/install-workloads.md @@ -0,0 +1,25 @@ +# .NET Workloads + +After installing .NET 10 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: + +```console +> dotnet workload install maui +... +Successfully installed workload(s) maui. +``` + +Verify installation: + +```console +> dotnet workload list + +Installed Workload Id Manifest Version Installation Source +-------------------------------------------------------------------------------------------- +maui 10.0.100-preview.1.25120/10.0.100-preview.1 SDK 10.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. diff --git a/release-notes/10.0/install.md b/release-notes/10.0/install.md new file mode 100644 index 0000000000..5f72096be4 --- /dev/null +++ b/release-notes/10.0/install.md @@ -0,0 +1,95 @@ +# .NET 10 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 10.0.1xx SDK to the specified location + +Windows: + +```console +./dotnet-install.ps1 -Channel 10.0.1xx -Quality preview -InstallDir C:\cli +``` + +macOS/Linux: + +```console +./dotnet-install.sh --channel 10.0.1xx --quality preview --install-dir ~/cli +``` + +### Install the latest preview version of the 10.0.0 runtime to the specified location + +Windows: + +```console +.\.dotnet\dotnet-install.ps1 -Channel 10.0 -Runtime dotnet -Quality preview -InstallDir c:\cli +``` + +macOs/Linux: + +```console +./dotnet-install.sh --runtime dotnet --channel 10.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/10.0) +- [.NET 10 release notes](README.md) + +[Container images](https://hub.docker.com/_/microsoft-dotnet) are provided for Linux (Alpine, Debian, Ubuntu, Azure Linux, and distroless variants of Ubuntu and Azure Linux) and Windows (Nano Server and Server Core). + +## 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: 10.0.100-preview.1.25120.13 + 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/10.0.100-preview.1.25120.13/ + +Host: + Version: 10.0.100-preview.1.25120.13 + Architecture: x64 + Commit: 550605cc93 + +.NET SDKs installed: +10.0.100-preview.1.25120.13 [/usr/local/share/dotnet/x64/sdk] + +.NET runtimes installed: + Microsoft.AspNetCore.App 10.0.100-preview.1.25120.13 [/usr/local/share/dotnet/x64/shared/Microsoft.AspNetCore.App] + Microsoft.NETCore.App 10.0.100-preview.1.25120.13 [/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 +10.0.100-preview.1.25120.13 +``` From 6f79ad73087e6202d934fbdf1a6801c1b1360dcd Mon Sep 17 00:00:00 2001 From: Rahul Bhandari Date: Tue, 25 Feb 2025 10:18:43 -0800 Subject: [PATCH 44/44] Update release-notes/10.0/preview/preview1/10.0.0-preview.1.md Co-authored-by: Logan Bussell --- .../10.0/preview/preview1/10.0.0-preview.1.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md index 4392844699..724c18e3dd 100644 --- a/release-notes/10.0/preview/preview1/10.0.0-preview.1.md +++ b/release-notes/10.0/preview/preview1/10.0.0-preview.1.md @@ -54,10 +54,14 @@ $ dotnet --version The following repos have been updated: -- [dotnet/sdk](https://github.com/dotnet/dotnet-docker/blob/main/README.sdk.md): .NET SDK -- [dotnet/aspnet](https://github.com/dotnet/dotnet-docker/blob/main/README.aspnet.md): ASP.NET Core Runtime -- [dotnet/runtime](https://github.com/dotnet/dotnet-docker/blob/main/README.runtime.md): .NET Runtime -- [dotnet/runtime-deps](https://github.com/dotnet/dotnet-docker/blob/main/README.runtime.md): .NET Runtime Dependencies +- [dotnet/sdk](https://github.com/dotnet/dotnet-docker/blob/main/README.sdk.md) + - `docker pull mcr.microsoft.com/dotnet/sdk:10.0-preview` +- [dotnet/aspnet](https://github.com/dotnet/dotnet-docker/blob/main/README.aspnet.md) + - `docker pull mcr.microsoft.com/dotnet/aspnet:10.0-preview` +- [dotnet/runtime](https://github.com/dotnet/dotnet-docker/blob/main/README.runtime.md) + - `docker pull mcr.microsoft.com/dotnet/runtime:10.0-preview` +- [dotnet/runtime-deps](https://github.com/dotnet/dotnet-docker/blob/main/README.runtime.md) + - `docker pull mcr.microsoft.com/dotnet/runtime-deps:10.0-preview` ## Visual Studio Compatibility