From f1d33f8665f26f8f16d33ceeade7320dc4f1c2e5 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 23 Jul 2025 15:32:40 -0700 Subject: [PATCH 01/32] Add release notes for .NET 10 Preview 7 across various components --- .../prompts/createprs-for-preview.prompt.md | 27 ++++ .github/prompts/scaffoldpreview.prompt.md | 25 +++ .../10.0/preview/preview7/10.0.0-preview.7.md | 142 ++++++++++++++++++ release-notes/10.0/preview/preview7/README.md | 40 +++++ .../10.0/preview/preview7/aspnetcore.md | 15 ++ .../10.0/preview/preview7/containers.md | 13 ++ release-notes/10.0/preview/preview7/csharp.md | 13 ++ .../10.0/preview/preview7/dotnetmaui.md | 13 ++ release-notes/10.0/preview/preview7/efcore.md | 13 ++ release-notes/10.0/preview/preview7/fsharp.md | 13 ++ .../10.0/preview/preview7/libraries.md | 13 ++ .../10.0/preview/preview7/runtime.md | 13 ++ release-notes/10.0/preview/preview7/sdk.md | 13 ++ .../10.0/preview/preview7/visualbasic.md | 13 ++ .../10.0/preview/preview7/winforms.md | 13 ++ release-notes/10.0/preview/preview7/wpf.md | 13 ++ 16 files changed, 392 insertions(+) create mode 100644 .github/prompts/createprs-for-preview.prompt.md create mode 100644 .github/prompts/scaffoldpreview.prompt.md create mode 100644 release-notes/10.0/preview/preview7/10.0.0-preview.7.md create mode 100644 release-notes/10.0/preview/preview7/README.md create mode 100644 release-notes/10.0/preview/preview7/aspnetcore.md create mode 100644 release-notes/10.0/preview/preview7/containers.md create mode 100644 release-notes/10.0/preview/preview7/csharp.md create mode 100644 release-notes/10.0/preview/preview7/dotnetmaui.md create mode 100644 release-notes/10.0/preview/preview7/efcore.md create mode 100644 release-notes/10.0/preview/preview7/fsharp.md create mode 100644 release-notes/10.0/preview/preview7/libraries.md create mode 100644 release-notes/10.0/preview/preview7/runtime.md create mode 100644 release-notes/10.0/preview/preview7/sdk.md create mode 100644 release-notes/10.0/preview/preview7/visualbasic.md create mode 100644 release-notes/10.0/preview/preview7/winforms.md create mode 100644 release-notes/10.0/preview/preview7/wpf.md diff --git a/.github/prompts/createprs-for-preview.prompt.md b/.github/prompts/createprs-for-preview.prompt.md new file mode 100644 index 0000000000..ff3ed67c0f --- /dev/null +++ b/.github/prompts/createprs-for-preview.prompt.md @@ -0,0 +1,27 @@ +--- +mode: agent +--- + + +Go through each folder in release-notes/10.0/preview7 and one at a time i want you do to the following: + +1. create a new branch names **dotnet10-p7-** where is the name of the file without the extension. +2. modify the file in some simple way by adding a new line at the end of the file with the text "Something about the feature" in it. +3. commit the change with the message "Update for preview 7" where is the name of the file without the extension. +4. push the branch to the remote repository. +5. create a pull request with the title "Update for preview 7" and the body "This PR updates the file for preview 7. Please make any additional changes to this based on the new items." where is the name of the file without the extension. +6. go back to the dotnet10-p7 branch and repeat the process for the next file. + +Here are the files you need to do this one at a time for: +- aspnetcore.md +- containers.md +- csharp.md +- dotnetmaui.md +- efcore.md +- fsharp.md +- libraries.md +- runtime.md +- sdk.md +- visualbasic.md +- winforms.md +- wpf.md \ No newline at end of file diff --git a/.github/prompts/scaffoldpreview.prompt.md b/.github/prompts/scaffoldpreview.prompt.md new file mode 100644 index 0000000000..5c2735a87e --- /dev/null +++ b/.github/prompts/scaffoldpreview.prompt.md @@ -0,0 +1,25 @@ +--- +mode: agent +--- +Create a new folder in the releasenotes/10.0/preview folder for preview7. Inside of it duplicate the folder structure and files that are in the preview6 folder and for each of the files use the following template based on the names of the product that the file is in. You can use the previous file as a reference for the content. Ignore the api-diff folder. Ignore the release.json file. + +Here is a sample of what aspnetcore.md should look like: + +```markdown +# ASP.NET Core in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in ASP.NET Core in this preview release: + +- [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://github.com/dotnet/aspnetcore/issues/59443) + +## Feature + +Something about the feature + +`` \ No newline at end of file diff --git a/release-notes/10.0/preview/preview7/10.0.0-preview.7.md b/release-notes/10.0/preview/preview7/10.0.0-preview.7.md new file mode 100644 index 0000000000..7197a264f9 --- /dev/null +++ b/release-notes/10.0/preview/preview7/10.0.0-preview.7.md @@ -0,0 +1,142 @@ +# .NET 10 Preview 7 Binaries + +.NET 10 Preview 7 installers and binaries can be downloaded for the following product versions: + +- `.NET 10.0.0 Preview 7` +- `.NET SDK 10.0.100-preview.7.25xxx.xxx` + +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 + +| | 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. + +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.7.25xxx.xxx +``` + +## .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 + ``` + +## Container Images + +[.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: + +- [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 + +.NET 10 is compatible with [Visual Studio 17.14 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. + +## 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.7-sha.txt +[checksums-sdk]: https://builds.dotnet.microsoft.com/dotnet/checksums/10.0.0-preview.7-sha.txt + +[linux-packages]: ../../install-linux.md + +## Packages updated in this release + +| Package name | Version | +| :------------------------------------------ | :---------: | +| AspNetCoreRuntime.10.0.x64 | 10.0.0-preview-7-25xxx-xxx | +| AspNetCoreRuntime.10.0.x86 | 10.0.0-preview-7-25xxx-xxx | +| dotnet-ef | 10.0.0-preview.7.25xxx.xxx | +| dotnet-ilverify | 10.0.0-preview.7.25xxx.xxx | +| dotnet-sql-cache | 10.0.0-preview.7.25xxx.xxx | +| dotnet-suggest | 1.1.xxxxxx | +| FSharp.Compiler.Service | 43.10.100-preview.25xxx.xxx | +| FSharp.Core | 10.0.100-beta.25xxx.xxx | +| Microsoft.AspNetCore.App.Internal.Assets | 10.0.0-preview.7.25xxx.xxx | + +[//]: # ( Runtime 10.0.0-preview.7) +[dotnet-runtime-linux-arm.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-linux-arm.tar.gz +[dotnet-runtime-linux-arm64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-linux-arm64.tar.gz +[dotnet-runtime-linux-musl-arm.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-linux-musl-arm.tar.gz +[dotnet-runtime-linux-musl-arm64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-linux-musl-arm64.tar.gz +[dotnet-runtime-linux-musl-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-linux-musl-x64.tar.gz +[dotnet-runtime-linux-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-linux-x64.tar.gz +[dotnet-runtime-osx-arm64.pkg]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-osx-arm64.pkg +[dotnet-runtime-osx-arm64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-osx-arm64.tar.gz +[dotnet-runtime-osx-x64.pkg]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-osx-x64.pkg +[dotnet-runtime-osx-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-osx-x64.tar.gz +[dotnet-runtime-win-arm64.exe]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-win-arm64.exe +[dotnet-runtime-win-arm64.zip]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-win-arm64.zip +[dotnet-runtime-win-x64.exe]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-win-x64.exe +[dotnet-runtime-win-x64.zip]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-win-x64.zip +[dotnet-runtime-win-x86.exe]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-win-x86.exe +[dotnet-runtime-win-x86.zip]: https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-runtime-10.0.0-preview.7.25xxx.xxx-win-x86.zip + +[//]: # ( WindowsDesktop 10.0.0-preview.7) +[windowsdesktop-runtime-win-arm64.exe]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25xxx.xxx/windowsdesktop-runtime-10.0.0-preview.7.25xxx.xxx-win-arm64.exe +[windowsdesktop-runtime-win-x64.exe]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25xxx.xxx/windowsdesktop-runtime-10.0.0-preview.7.25xxx.xxx-win-x64.exe +[windowsdesktop-runtime-win-x86.exe]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25xxx.xxx/windowsdesktop-runtime-10.0.0-preview.7.25xxx.xxx-win-x86.exe + +[//]: # ( ASP 10.0.0-preview.7) +[aspnetcore-runtime-linux-arm.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/aspnetcore-runtime-10.0.0-preview.7.25xxx.xxx-linux-arm.tar.gz +[aspnetcore-runtime-linux-arm64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/aspnetcore-runtime-10.0.0-preview.7.25xxx.xxx-linux-arm64.tar.gz +[aspnetcore-runtime-linux-musl-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/aspnetcore-runtime-10.0.0-preview.7.25xxx.xxx-linux-musl-x64.tar.gz +[aspnetcore-runtime-linux-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/aspnetcore-runtime-10.0.0-preview.7.25xxx.xxx-linux-x64.tar.gz +[aspnetcore-runtime-osx-arm64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/aspnetcore-runtime-10.0.0-preview.7.25xxx.xxx-osx-arm64.tar.gz +[aspnetcore-runtime-osx-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/aspnetcore-runtime-10.0.0-preview.7.25xxx.xxx-osx-x64.tar.gz +[aspnetcore-runtime-win-x64.exe]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/aspnetcore-runtime-10.0.0-preview.7.25xxx.xxx-win-x64.exe +[aspnetcore-runtime-win-x86.exe]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/aspnetcore-runtime-10.0.0-preview.7.25xxx.xxx-win-x86.exe +[dotnet-hosting-win.exe]: https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25xxx.xxx/dotnet-hosting-10.0.0-preview.7.25xxx.xxx-win.exe + +[//]: # ( SDK 10.0.100-preview.7) +[dotnet-sdk-linux-arm.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-linux-arm.tar.gz +[dotnet-sdk-linux-arm64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-linux-arm64.tar.gz +[dotnet-sdk-linux-musl-arm.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-linux-musl-arm.tar.gz +[dotnet-sdk-linux-musl-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-linux-musl-x64.tar.gz +[dotnet-sdk-linux-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-linux-x64.tar.gz +[dotnet-sdk-osx-arm64.pkg]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-osx-arm64.pkg +[dotnet-sdk-osx-arm64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-osx-arm64.tar.gz +[dotnet-sdk-osx-x64.pkg]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-osx-x64.pkg +[dotnet-sdk-osx-x64.tar.gz]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-osx-x64.tar.gz +[dotnet-sdk-win-arm64.exe]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-win-arm64.exe +[dotnet-sdk-win-arm64.zip]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-win-arm64.zip +[dotnet-sdk-win-x64.exe]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-win-x64.exe +[dotnet-sdk-win-x64.zip]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-win-x64.zip +[dotnet-sdk-win-x86.exe]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-win-x86.exe +[dotnet-sdk-win-x86.zip]: https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25xxx.xxx/dotnet-sdk-10.0.100-preview.7.25xxx.xxx-win-x86.zip diff --git a/release-notes/10.0/preview/preview7/README.md b/release-notes/10.0/preview/preview7/README.md new file mode 100644 index 0000000000..392beb2b04 --- /dev/null +++ b/release-notes/10.0/preview/preview7/README.md @@ -0,0 +1,40 @@ +# .NET 10 Preview 7 - Release Notes + +.NET 10 Preview 7 released on September 15, 2025. Find more information on new features released in .NET 10 Preview 7 by browsing through the release notes below: + +- [Libraries](./libraries.md) +- [Runtime](./runtime.md) +- [SDK](./sdk.md) + +## Languages + +- [C#](./csharp.md) +- [F#](./fsharp.md) +- [Visual Basic](./visualbasic.md) + +## Workloads, Libraries, & More + +- [.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) + +## 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 7 can be found [here on GitHub](./10.0.0-preview.7.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 .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/preview7/aspnetcore.md b/release-notes/10.0/preview/preview7/aspnetcore.md new file mode 100644 index 0000000000..b1b43534b6 --- /dev/null +++ b/release-notes/10.0/preview/preview7/aspnetcore.md @@ -0,0 +1,15 @@ +# ASP.NET Core in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in ASP.NET Core in this preview release: + +- [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://github.com/dotnet/aspnetcore/issues/59443) + +## Feature + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/containers.md b/release-notes/10.0/preview/preview7/containers.md new file mode 100644 index 0000000000..235a667fa7 --- /dev/null +++ b/release-notes/10.0/preview/preview7/containers.md @@ -0,0 +1,13 @@ +# Containers in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in Containers in this preview release: + +- [Feature](#feature) + +Containers updates in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + +## Feature + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/csharp.md b/release-notes/10.0/preview/preview7/csharp.md new file mode 100644 index 0000000000..0f3b41fe57 --- /dev/null +++ b/release-notes/10.0/preview/preview7/csharp.md @@ -0,0 +1,13 @@ +# C# in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in C# in this preview release: + +- [Feature](#feature) + +C# updates in .NET 10: + +- [What's new in C# 13](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-13) documentation + +## Feature + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/dotnetmaui.md b/release-notes/10.0/preview/preview7/dotnetmaui.md new file mode 100644 index 0000000000..4fbe0944a3 --- /dev/null +++ b/release-notes/10.0/preview/preview7/dotnetmaui.md @@ -0,0 +1,13 @@ +# .NET MAUI in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in .NET MAUI in this preview release: + +- [Feature](#feature) + +.NET MAUI updates in .NET 10: + +- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/) documentation + +## Feature + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/efcore.md b/release-notes/10.0/preview/preview7/efcore.md new file mode 100644 index 0000000000..a8d2dee25e --- /dev/null +++ b/release-notes/10.0/preview/preview7/efcore.md @@ -0,0 +1,13 @@ +# Entity Framework Core in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in Entity Framework Core in this preview release: + +- [Feature](#feature) + +Entity Framework Core updates in .NET 10: + +- [What's new in EF Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation + +## Feature + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/fsharp.md b/release-notes/10.0/preview/preview7/fsharp.md new file mode 100644 index 0000000000..dd8dc7c042 --- /dev/null +++ b/release-notes/10.0/preview/preview7/fsharp.md @@ -0,0 +1,13 @@ +# F# in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in F# in this preview release: + +- [Feature](#feature) + +F# updates in .NET 10: + +- [What's new in F#](https://learn.microsoft.com/dotnet/fsharp/whats-new/) documentation + +## Feature + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/libraries.md b/release-notes/10.0/preview/preview7/libraries.md new file mode 100644 index 0000000000..abe9ab5351 --- /dev/null +++ b/release-notes/10.0/preview/preview7/libraries.md @@ -0,0 +1,13 @@ +# .NET Libraries in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in .NET Libraries in this preview release: + +- [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 + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/runtime.md b/release-notes/10.0/preview/preview7/runtime.md new file mode 100644 index 0000000000..7e1590c0cb --- /dev/null +++ b/release-notes/10.0/preview/preview7/runtime.md @@ -0,0 +1,13 @@ +# .NET Runtime in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in the .NET Runtime in this preview release: + +- [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 + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/sdk.md b/release-notes/10.0/preview/preview7/sdk.md new file mode 100644 index 0000000000..ba9c045a38 --- /dev/null +++ b/release-notes/10.0/preview/preview7/sdk.md @@ -0,0 +1,13 @@ +# .NET SDK in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in the .NET SDK in this preview release: + +- [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 + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/visualbasic.md b/release-notes/10.0/preview/preview7/visualbasic.md new file mode 100644 index 0000000000..17b34d69c6 --- /dev/null +++ b/release-notes/10.0/preview/preview7/visualbasic.md @@ -0,0 +1,13 @@ +# Visual Basic in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in Visual Basic in this preview release: + +- [Feature](#feature) + +Visual Basic updates in .NET 10: + +- [What's new in Visual Basic](https://learn.microsoft.com/dotnet/visual-basic/whats-new/) documentation + +## Feature + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/winforms.md b/release-notes/10.0/preview/preview7/winforms.md new file mode 100644 index 0000000000..7a0395ca87 --- /dev/null +++ b/release-notes/10.0/preview/preview7/winforms.md @@ -0,0 +1,13 @@ +# Windows Forms in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in Windows Forms in this preview release: + +- [Feature](#feature) + +Windows Forms updates in .NET 10: + +- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/) documentation + +## Feature + +Something about the feature diff --git a/release-notes/10.0/preview/preview7/wpf.md b/release-notes/10.0/preview/preview7/wpf.md new file mode 100644 index 0000000000..a6b051d8e4 --- /dev/null +++ b/release-notes/10.0/preview/preview7/wpf.md @@ -0,0 +1,13 @@ +# WPF in .NET 10 Preview 7 - Release Notes + +Here's a summary of what's new in WPF in this preview release: + +- [Feature](#feature) + +WPF updates in .NET 10: + +- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/) documentation + +## Feature + +Something about the feature From cd7caad8c885b3ca9c855e7970104d48526a4e63 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 23 Jul 2025 16:07:48 -0700 Subject: [PATCH 02/32] Remove outdated prompt for creating pull requests for Preview 7 --- .../prompts/createprs-for-preview.prompt.md | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/.github/prompts/createprs-for-preview.prompt.md b/.github/prompts/createprs-for-preview.prompt.md index ff3ed67c0f..e69de29bb2 100644 --- a/.github/prompts/createprs-for-preview.prompt.md +++ b/.github/prompts/createprs-for-preview.prompt.md @@ -1,27 +0,0 @@ ---- -mode: agent ---- - - -Go through each folder in release-notes/10.0/preview7 and one at a time i want you do to the following: - -1. create a new branch names **dotnet10-p7-** where is the name of the file without the extension. -2. modify the file in some simple way by adding a new line at the end of the file with the text "Something about the feature" in it. -3. commit the change with the message "Update for preview 7" where is the name of the file without the extension. -4. push the branch to the remote repository. -5. create a pull request with the title "Update for preview 7" and the body "This PR updates the file for preview 7. Please make any additional changes to this based on the new items." where is the name of the file without the extension. -6. go back to the dotnet10-p7 branch and repeat the process for the next file. - -Here are the files you need to do this one at a time for: -- aspnetcore.md -- containers.md -- csharp.md -- dotnetmaui.md -- efcore.md -- fsharp.md -- libraries.md -- runtime.md -- sdk.md -- visualbasic.md -- winforms.md -- wpf.md \ No newline at end of file From b4ae69e7f2c37615a39b33137e7ee9e9ecefb54b Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Wed, 23 Jul 2025 16:35:23 -0700 Subject: [PATCH 03/32] Add prompt for creating pull requests for .NET 10 Preview 7 --- .../prompts/createprs-for-preview.prompt.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/.github/prompts/createprs-for-preview.prompt.md b/.github/prompts/createprs-for-preview.prompt.md index e69de29bb2..e76c2252dd 100644 --- a/.github/prompts/createprs-for-preview.prompt.md +++ b/.github/prompts/createprs-for-preview.prompt.md @@ -0,0 +1,44 @@ +--- +mode: agent +--- + + +Go through each folder in release-notes/10.0/preview7 and one at a time i want you do to the following: + +1. create a new branch names **dotnet10-p7-** where is the name of the file without the extension. +2. modify the file in some simple way by adding a new line at the end of the file with the text "Something about the feature" in it. +3. commit the change with the message "Update for preview 7" where is the name of the file without the extension. +4. push the branch to the remote repository. +5. create a pull request with the title "Update for preview 7" and the body "Please update the release notes here as needed for Preview 7.\n\n/cc @" where is the name of the file without the extension and is assigned based on the assignment table below. +6. go back to the dotnet10-p7 branch and repeat the process for the next file. + +## Assignment Table (based on Preview 6 patterns): + +| File | Assignee(s) | Based on Preview 6 PR | +|------|-------------|----------------------| +| aspnetcore.md | @danroth27 | #9953 | +| containers.md | @lbussell | #9942 | +| csharp.md | @BillWagner | #9943 | +| dotnetmaui.md | @davidortinau | #10013 | +| efcore.md | @roji | #9945 | +| fsharp.md | @T-Gro | #9946 | +| libraries.md | @richlander @tarekgh | #9952 | +| runtime.md | @ericstj @kunalspathak | #9951 | +| sdk.md | @baronfel @mariam-abdulla @nohwnd | #9949 | +| visualbasic.md | @BillWagner | #9950 | +| winforms.md | @merriemcgaw | #9947 | +| wpf.md | @harshit7962 | #9948 | + +Here are the files you need to do this one at a time for: +- aspnetcore.md +- containers.md +- csharp.md +- dotnetmaui.md +- efcore.md +- fsharp.md +- libraries.md +- runtime.md +- sdk.md +- visualbasic.md +- winforms.md +- wpf.md \ No newline at end of file From d6211d7744398842fcec711a0b4e6038c1ab9237 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Mon, 11 Aug 2025 14:34:21 -0700 Subject: [PATCH 04/32] Update wpf for preview 7 (#10005) * Update wpf for preview 7 * Add details * Fix version * Update wpf.md * Update wpf.md --------- Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com> Co-authored-by: Jon Galloway --- release-notes/10.0/preview/preview7/wpf.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/release-notes/10.0/preview/preview7/wpf.md b/release-notes/10.0/preview/preview7/wpf.md index a6b051d8e4..b692e619c4 100644 --- a/release-notes/10.0/preview/preview7/wpf.md +++ b/release-notes/10.0/preview/preview7/wpf.md @@ -2,12 +2,19 @@ Here's a summary of what's new in WPF in this preview release: -- [Feature](#feature) +- [Bug Fixes](#bug-fixes) +- [Fluent Theme Improvements](#fluent-theme-improvements) WPF updates in .NET 10: -- [What's new in WPF](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/) documentation +- [What's new in WPF in .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) documentation. -## Feature +## Bug Fixes -Something about the feature +- Avoided `UCEERR_RENDERTHREADFAILURE` in applications using ***D3DImage**, when the monitor is unavailable. + +## Fluent Theme Improvements + +- Fixed some accessibility issues in Fluent control styles (`DatePicker`, `DataGrid`). +- Unified text control Fluent style resources. +- Fixed localization resources for `ScrollBar`. From fdb031bbef32fd6b341268ff891d6a2b584fe660 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Mon, 11 Aug 2025 15:27:07 -0700 Subject: [PATCH 05/32] Update dotnetmaui for preview 7 (#9997) * Update dotnetmaui for preview 7 * Update dotnetmaui.md for preview 7 with copilot consolidation * Update release-notes/10.0/preview/preview7/dotnetmaui.md Co-authored-by: Jonathan Peppers * Update dotnetmaui.md * Update dotnetmaui.md --------- Co-authored-by: David Ortinau Co-authored-by: Jonathan Peppers --- .../10.0/preview/preview7/dotnetmaui.md | 198 +++++++++++++++++- 1 file changed, 194 insertions(+), 4 deletions(-) diff --git a/release-notes/10.0/preview/preview7/dotnetmaui.md b/release-notes/10.0/preview/preview7/dotnetmaui.md index 4fbe0944a3..3f86e5e430 100644 --- a/release-notes/10.0/preview/preview7/dotnetmaui.md +++ b/release-notes/10.0/preview/preview7/dotnetmaui.md @@ -2,12 +2,202 @@ Here's a summary of what's new in .NET MAUI in this preview release: -- [Feature](#feature) +- .NET MAUI + - [XAML Source Generator](#xaml-source-generator) + - [MediaPicker EXIF Support](#mediapicker-exif-support) + - [SafeArea Enhancements](#safearea-enhancements) + - [Secondary Toolbar Items](#secondary-toolbar-items) + - [New Control APIs](#new-control-apis) + - [Deprecated API Removals](#deprecated-api-removals) +- [.NET for Android](#net-for-android) +- [.NET for iOS, Mac Catalyst, macOS, tvOS](#net-for-ios-mac-catalyst-macos-tvos) .NET MAUI updates in .NET 10: -- [What's new in .NET MAUI](https://learn.microsoft.com/dotnet/maui/whats-new/) documentation +- [What's new in .NET MAUI in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) documentation. -## Feature +## XAML Source Generator -Something about the feature +.NET MAUI now includes a source generator for XAML that improves build performance and enables better tooling support. This generator creates strongly-typed code for your XAML files at compile time, reducing runtime overhead and providing better IntelliSense support. + +The source generator decorates generated types with the `[Generated]` attribute for better tooling integration and debugging support. + +To enable XAML source generation, opt-in to preview features and then decorate your C# with the `XamlProcessing` directive. + +```xml + + true + +``` + +```csharp +[assembly: XamlProcessing(XamlInflator.SourceGen)] +namespace MyApp; +``` + +## MediaPicker EXIF Support + +The `MediaPicker` now automatically handles EXIF information when working with images: + +- **Auto-rotate images**: Images are automatically rotated based on their EXIF orientation data +- **Preserve EXIF information**: Original EXIF metadata is preserved when using MediaPicker + +This ensures that images appear correctly oriented regardless of how they were captured or stored on the device. + +## SafeArea Enhancements + +This release introduces significant improvements to SafeArea management: + +- **Enhanced SafeAreaEdges control**: Improved `SafeAreaEdges` property with refined `SafeAreaRegions` enum for precise safe area behavior control +- **iOS SafeArea fixes**: Resolved issues with SafeArea management on iOS, including extra bottom space in ScrollView when using SafeAreaEdges +- **Improved defaults**: Fixed safe area defaults to provide more consistent behavior across platforms + +The `SafeAreaEdges` property is available on these controls: + +- **Layout**: Base layout class (inherited by `Grid`, `StackLayout`, `AbsoluteLayout`, `FlexLayout`, etc.) +- **ContentView**: Content view container +- **ContentPage**: Main page type +- **Border**: Border control +- **ScrollView**: Scrollable content container + +The `SafeAreaRegions` enum provides granular control over safe area behavior: + +```csharp +public enum SafeAreaRegions +{ + None = 0, // Edge-to-edge content (no safe area padding) + SoftInput = 1, // Always pad for keyboard/soft input + Container = 2, // Flow under keyboard, stay out of bars/notch + Default = 4, // Platform default behavior + All = int.MaxValue // Obey all safe area insets +} + +// Usage examples + + + + + + + + + + + +``` + +## Secondary Toolbar Items + +iOS and macOS now support secondary toolbar items, providing better alignment with platform conventions: + +- **Modern iOS pattern**: Uses iOS 13+ APIs with pull-down menu design following iOS Human Interface Guidelines +- **Automatic detection**: Toolbar items with `Order="Secondary"` are automatically grouped into a secondary menu +- **Priority ordering**: Items are ordered within the secondary menu based on their `Priority` property +- **Platform positioning**: Menu appears on the far right (or left when RTL is enabled) +- **Customizable icon**: Developers can override the default ellipsis icon through a protected virtual method + +```xml + + + + + + + + + + +``` + +The secondary items are grouped into a pull-down menu with the system ellipsis icon (`UIImage.GetSystemImage("ellipsis.circle")`) by default. When the menu is opened and an item's properties change, the menu automatically rebuilds and closes to reflect the updates. + +## New Control APIs + +Several new APIs have been added to improve control functionality: + +- **Picker controls**: New "Open/Close" API for programmatically controlling picker state +- **SearchHandler**: Added API to hide or show the soft keyboard when using SearchHandler +- **Vibration and HapticFeedback**: New `IsSupported` API to check platform support +- **Windows**: Added API to enable/disable minimize and maximize buttons on Windows +- **Shell navigation**: Added `Shell.SetNavBarVisibilityAnimationEnabled` property for controlling navigation bar visibility animations +- **TabbedPageManager**: Made TabbedPageManager public for advanced customization scenarios +- **StackNavigationManager**: Exposed public APIs for StackNavigationManager on Android + +## Deprecated API Removals + +As part of .NET 10, several deprecated APIs have been removed: + +- **Accelerator class**: Removed from Microsoft.Maui.Controls +- **ClickGestureRecognizer**: Removed in favor of `TapGestureRecognizer` +- **Page.IsBusy**: Marked as obsolete +- **Compatibility.Layout**: removed dependency + +## Control and Layout Improvements + +This release includes numerous fixes and improvements across controls and layouts. + +## .NET for Android + +This release includes continued integration with multiple .NET runtimes, and several bug fixes: + +- Add `$(EnableDiagnostics)` cross-platform MSBuild property, to align with iOS and WASM. +- Fixe an issue with `=` symbol in Android environment variables. +- Fixed an issue where certain Java libraries were not redistributed in NuGet packages. +- Add support for API 36 in various Visual Studio dropdowns & menus. +- Changes to the "Java GC Bridge" to support multiple runtimes. + +A detailed list can be found on the [dotnet/android GitHub releases](https://github.com/dotnet/android/releases/). + +## .NET for iOS, Mac Catalyst, macOS, tvOS + +This release includes Xcode 26 Beta 4 support for targeting .NET 9. We will include builds for .NET 10 in a subsequent release. To use these new bindings, target `net9.0-ios26` and/or `net9.0-maccatalyst26` and include `$(NoWarn);XCODE_26_0_PREVIEW` in your project file. + +```xml + + + net9.0-ios26 + $(NoWarn);XCODE_26_0_PREVIEW + + + +``` + +> **Note** A current issues exists with `Shell` that prevents it from rendering on iOS 26. Other page types work. + +Also in this release are significant improvements to binding generation, runtime performance, and API coverage: + +- **New Binding Generator (RGen)**: + - Enhanced source generator for better binding performance and maintainability + - Added support for nested classes, categories, and constructors + - Improved async method generation with proper Task-based patterns + - Better memory management and semantic model usage + - Support for strong dictionary properties and weak delegate patterns + +- **Runtime and Interop Improvements**: + - Reworked `NSObject` data storage to fix a crash + - Enhanced P/Invoke handling and native library integration + +- **API and Framework Updates**: + - Fixed `CoreLocation` availability for macOS monitoring features + - Enhanced `CoreText` font manager constants generation + - Updated `StoreKit` by unmarking `AppStore` class as experimental + - Fixed `CoreMedia` format description extensions and related APIs + - Improved `Network` framework P/Invoke calls + +- **Build and Tooling Enhancements**: + - Better xcframework processing with improved diagnostics + - Enhanced resource duplication detection + - Better xml documentation generation for interfaces and protocols + +- **Platform-Specific Fixes**: + - Fixed `CVOpenGLESTexture` and `CVOpenGLESTextureCache` build integration + - Resolved `AVFoundation` enum value locations + - Enhanced `CoreImage` format convenience enum generation + +A detailed list can be found on the [dotnet/macios GitHub releases](https://github.com/dotnet/macios/releases/) including a list of [Known issues](https://github.com/dotnet/macios/wiki/Known-issues-in-.NET10). + +## Contributors + +Thank you contributors! ❤️ + +[@Aguilex](https://github.com/Aguilex), [@Ahamed-Ali](https://github.com/Ahamed-Ali), [@albyrock87](https://github.com/albyrock87), [@anandhan-rajagopal](https://github.com/anandhan-rajagopal), [@bhavanesh2001](https://github.com/bhavanesh2001), [@Copilot](https://github.com/copilot-swe-agent), [@csigs](https://github.com/csigs), [@dotnet-bot](https://github.com/dotnet-bot), [@dotnet-maestro](https://github.com/dotnet-maestro), [@emaf](https://github.com/emaf), [@framinosona](https://github.com/framinosona), [@github-actions](https://github.com/github-actions), [@grendello](https://github.com/grendello), [@HarishKumarSF4517](https://github.com/HarishKumarSF4517), [@jfversluis](https://github.com/jfversluis), [@jonathanpeppers](https://github.com/jonathanpeppers), [@jonpryor](https://github.com/jonpryor), [@jsuarezruiz](https://github.com/jsuarezruiz), [@kubaflo](https://github.com/kubaflo), [@LogishaSelvarajSF4525](https://github.com/LogishaSelvarajSF4525), [@mandel-macaque](https://github.com/mandel-macaque), [@mattleibow](https://github.com/mattleibow), [@MichalStrehovsky](https://github.com/MichalStrehovsky), [@morning4coffe-dev](https://github.com/morning4coffe-dev), [@NafeelaNazhir](https://github.com/NafeelaNazhir), [@NanthiniMahalingam](https://github.com/NanthiniMahalingam), [@NirmalKumarYuvaraj](https://github.com/NirmalKumarYuvaraj), [@nivetha-nagalingam](https://github.com/nivetha-nagalingam), [@pictos](https://github.com/pictos), [@praveenkumarkarunanithi](https://github.com/praveenkumarkarunanithi), [@PureWeen](https://github.com/PureWeen), [@rmarinho](https://github.com/rmarinho), [@rolfbjarne](https://github.com/rolfbjarne), [@sheiksyedm](https://github.com/sheiksyedm), [@simonrozsival](https://github.com/simonrozsival), [@StephaneDelcroix](https://github.com/StephaneDelcroix), [@SyedAbdulAzeemSF4852](https://github.com/SyedAbdulAzeemSF4852), [@Tamilarasan-Paranthaman](https://github.com/Tamilarasan-Paranthaman), [@TamilarasanSF4853](https://github.com/TamilarasanSF4853), [@Vignesh-SF3580](https://github.com/Vignesh-SF3580), [@VitalyKnyazev](https://github.com/VitalyKnyazev), [@vs-mobiletools-engineering-service2](https://github.com/vs-mobiletools-engineering-service2) From 6617d158a28a885a4415b24333a30fcb0d852ce0 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Mon, 11 Aug 2025 15:45:03 -0700 Subject: [PATCH 06/32] Update winforms for preview 7 (#10004) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update winforms for preview 7 * Update winforms readme.md --------- Co-authored-by: Klaus Löffelmann <9663150+KlausLoeffelmann@users.noreply.github.com> --- .../10.0/preview/preview7/winforms.md | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/release-notes/10.0/preview/preview7/winforms.md b/release-notes/10.0/preview/preview7/winforms.md index 7a0395ca87..2757c0c659 100644 --- a/release-notes/10.0/preview/preview7/winforms.md +++ b/release-notes/10.0/preview/preview7/winforms.md @@ -2,12 +2,15 @@ Here's a summary of what's new in Windows Forms in this preview release: -- [Feature](#feature) - -Windows Forms updates in .NET 10: - -- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/) documentation - -## Feature - -Something about the feature +## ComboBox Dark Mode Rendering Fix +In this update, we've resolved an issue where a disabled ComboBox displayed a white background instead of the appropriate dark mode color scheme. Now, regardless of whether the ComboBox is in editable, list, or simple mode, its constituent controls will correctly render with the proper dark mode background when disabled. + +## RichTextBox Dark Mode Improvement and Known Limitation +We’ve also addressed the RichTextBox background issue in dark mode. Previously, a disabled RichTextBox would show a white background. Now it correctly displays the dark mode background. However, there's a known limitation: if the RichTextBox has formatted content, only the first few visible lines will appear correctly, and the formatting might not fully apply in the disabled state. + +As a temporary workaround, if maintaining full formatting in a disabled RichTextBox is essential, we recommend setting it to read-only and manually disabling selections. This helps achieve a better preview until a more permanent fix is available. Note that this limitation is due to the underlying RichTextBox control in the common controls library, and a full fix may require a future version update. + +## PropertyGrid Dark Mode Enhancements +We’ve also improved the rendering of special buttons within the PropertyGrid for dark mode. Previously, the ellipsis button used to open an editor and the drop-down button for ComboBox-type editors were not rendering well in dark mode. Now, these elements have dedicated renderers ensuring they appear consistently and at the same quality as the rest of the UI in dark mode. + +Everything mentioned above pertains specifically to dark mode improvements in Preview 7. Other functionalities remain unchanged in this release. From 9de673153ad8b67fc56a5d459c6876610ca3c7f8 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Mon, 11 Aug 2025 15:46:12 -0700 Subject: [PATCH 07/32] Update efcore for preview 7 (#9998) * Update efcore for preview 7 * Fill in EF 10 preview7 release notes * Update release-notes/10.0/preview/preview7/efcore.md Co-authored-by: Martin Costello --------- Co-authored-by: Shay Rojansky Co-authored-by: Martin Costello --- release-notes/10.0/preview/preview7/efcore.md | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/release-notes/10.0/preview/preview7/efcore.md b/release-notes/10.0/preview/preview7/efcore.md index a8d2dee25e..5f67a5379c 100644 --- a/release-notes/10.0/preview/preview7/efcore.md +++ b/release-notes/10.0/preview/preview7/efcore.md @@ -1,13 +1,35 @@ -# Entity Framework Core in .NET 10 Preview 7 - Release Notes -Here's a summary of what's new in Entity Framework Core in this preview release: +# Entity Framework Core 10 Preview 7 - Release Notes -- [Feature](#feature) +Entity Framework Core 10 updates: -Entity Framework Core updates in .NET 10: +- [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) -- [What's new in EF Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation +## Improved translation for parameterized collection -## Feature +A notoriously difficult problem with relational databases is queries that involve *parameterized collections*: -Something about the feature +```c# +int[] ids = [1, 2, 3]; +var blogs = await context.Blogs.Where(b => ids.Contains(b.Id)).ToListAsync(); +``` + +EF 10.0 introduces a new default translation mode for parameterized collections, where each value in the collection is translated into its own scalar parameter: + +```sql +SELECT [b].[Id], [b].[Name] +FROM [Blogs] AS [b] +WHERE [b].[Id] IN (@ids1, @ids2, @ids3) +``` + +For more information, [see the EF release notes](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew#parameterized-collection-translation). + +## Small improvements and bug fixes + +- Fix Microsoft.Data.Sqlite behavior around `DateTime`, `DateTimeOffset` and UTC, [see breaking change notes](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/breaking-changes#DateTimeOffset-read) ([#36195](https://github.com/dotnet/efcore/issues/36195)). +- Fix translation of `DefaultIfEmpty` in various scenarios ([#19095](https://github.com/dotnet/efcore/issues/19095), [#33343](https://github.com/dotnet/efcore/issues/33343), [#36208](https://github.com/dotnet/efcore/issues/36208)). + +## Everything else in Preview 7 + +The full list of issues completed for Preview 7 can be found [here](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20state%3Aclosed%20milestone%3A10.0.0%20label%3Apreview-7). From 1a07e197bb1845bec3ba23d431818ac376091b7b Mon Sep 17 00:00:00 2001 From: Jon Galloway Date: Mon, 11 Aug 2025 15:49:55 -0700 Subject: [PATCH 08/32] Update release-notes/10.0/preview/preview7/README.md Co-authored-by: Weihan Li --- release-notes/10.0/preview/preview7/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview7/README.md b/release-notes/10.0/preview/preview7/README.md index 392beb2b04..9b2af97b13 100644 --- a/release-notes/10.0/preview/preview7/README.md +++ b/release-notes/10.0/preview/preview7/README.md @@ -1,6 +1,6 @@ # .NET 10 Preview 7 - Release Notes -.NET 10 Preview 7 released on September 15, 2025. Find more information on new features released in .NET 10 Preview 7 by browsing through the release notes below: +.NET 10 Preview 7 released on August 12, 2025. Find more information on new features released in .NET 10 Preview 7 by browsing through the release notes below: - [Libraries](./libraries.md) - [Runtime](./runtime.md) From 029c33bede7dc351a503e60b5d14bd680d0948fa Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 12 Aug 2025 10:12:31 -0400 Subject: [PATCH 09/32] Add comprehensive ASP.NET Core release notes for .NET 10 Preview 7 (#10023) --- .../10.0/preview/preview7/aspnetcore.md | 309 +++++++++++++++++- 1 file changed, 306 insertions(+), 3 deletions(-) diff --git a/release-notes/10.0/preview/preview7/aspnetcore.md b/release-notes/10.0/preview/preview7/aspnetcore.md index b1b43534b6..4b34ad0897 100644 --- a/release-notes/10.0/preview/preview7/aspnetcore.md +++ b/release-notes/10.0/preview/preview7/aspnetcore.md @@ -2,7 +2,14 @@ Here's a summary of what's new in ASP.NET Core in this preview release: -- [Feature](#feature) +- [Configure suppressing exception handler diagnostics](#configure-suppressing-exception-handler-diagnostics) +- [Avoid cookie login redirects for known API endpoints](#avoid-cookie-login-redirects-for-known-api-endpoints) +- [Passkey authentication improvements](#passkey-authentication-improvements) +- [Support for the .localhost top-level domain](#support-for-the-localhost-top-level-domain) +- [Use PipeReader support in System.Text.Json](#use-pipereader-support-in-systemtextjson) +- [Enhanced validation for classes and records](#enhanced-validation-for-classes-and-records) +- [Blazor improvements](#blazor-improvements) +- [OpenAPI.NET dependency upgraded to stable release](#openapinet-dependency-upgraded-to-stable-release) ASP.NET Core updates in .NET 10: @@ -10,6 +17,302 @@ ASP.NET Core updates in .NET 10: - [Breaking changes](https://docs.microsoft.com/dotnet/core/compatibility/10.0#aspnet-core) - [Roadmap](https://github.com/dotnet/aspnetcore/issues/59443) -## Feature +## Configure suppressing exception handler diagnostics -Something about the feature +A new configuration option has been added to the [ASP.NET Core exception handler middleware](https://learn.microsoft.com/aspnet/core/fundamentals/error-handling#exception-handler-page) to control diagnostic output: `ExceptionHandlerOptions.SuppressDiagnosticsCallback`. This callback is passed context about the request and exception, allowing you to add logic that determines whether the middleware should write exception logs and other telemetry. + +This setting is useful when you know an exception is transient, or has been handled by the exception handler middleware, and don't want the error logs written to your observability platform. + +Additionally, the middleware's default behavior has changed: it no longer writes exception diagnostics for exceptions handled by `IExceptionHandler`. Based on user feedback, logging handled exceptions at the error level was often undesirable when `IExceptionHandler.TryHandleAsync` returned `true`. + +You can revert to the previous behavior by configuring `SuppressDiagnosticsCallback`: + +```csharp +app.UseExceptionHandler(new ExceptionHandlerOptions +{ + SuppressDiagnosticsCallback = context => false; +}); +``` + +For more information about this breaking change, see https://github.com/aspnet/Announcements/issues/524. + +## Avoid cookie login redirects for known API endpoints + +By default, unauthenticated and unauthorized requests made to known API endpoints protected by cookie authentication now result in 401 and 403 responses rather than redirecting to a login or access denied URI. Redirecting unauthenticated requests to a login page doesn't usually make sense for API endpoints which typically rely on 401 and 403 status codes rather than HTML redirects to communicate authentication and authorization failures. + +API [endpoints](https://learn.microsoft.com/aspnet/core/fundamentals/routing) are identified using the new `IApiEndpointMetadata` interface, and metadata implementing the new interface has been added automatically to the following: + +- `[ApiController]` endpoints +- Minimal API endpoints that read JSON request bodies or write JSON responses +- Endpoints using `TypedResults` return types +- SignalR endpoints + +When `IApiEndpointMetadata` is present, the cookie authentication handler now returns appropriate HTTP status codes (401 for unauthenticated requests, 403 for forbidden requests) instead of redirecting. + +If you want to prevent this new behavior and always redirect to the login and access denied URIs for unauthenticated or unauthorized requests regardless of the target endpoint, you can override the `RedirectToLogin` and `RedirectToAccessDenied` events as follows: + +```csharp +builder.Services.AddAuthentication() + .AddCookie(options => + { + options.Events.OnRedirectToLogin = context => + { + context.Response.Redirect(context.RedirectUri); + return Task.CompletedTask; + }; + + options.Events.OnRedirectToAccessDenied = context => + { + context.Response.Redirect(context.RedirectUri); + return Task.CompletedTask; + }; + }); +``` + +For more information about this breaking change, see https://github.com/aspnet/Announcements/issues/525 + +## Passkey authentication improvements + +APIs for passkey authentication in ASP.NET Core Identity have been updated and simplified. The Blazor Identity UI in the Blazor Web App project template has been updated accordingly. + +Passkey options are now configured globally via `IdentityPasskeyOptions`. Here's an example of how passkey options can be configured: + +```csharp +builder.Services.Configure(options => +{ + // Explicitly set the Relying Party ID (domain) + options.ServerDomain = "example.com"; + + // Configure authenticator timeout + options.AuthenticatorTimeout = TimeSpan.FromMinutes(3); + + // Configure challenge size + options.ChallengeSize = 64; +}); +``` + +The `SignInManager` passkey APIs have also been simplified. Passkey creation and request options can now be created as shown below: + +```csharp +// Makes passkey options for use with the JS `navigator.credentials.create()` API: +var optionsJson = await signInManager.MakePasskeyCreationOptionsAsync(new() +{ + Id = userId, + Name = userName, + DisplayName = displayName, +}); + +// Makes passkey options for use with the JS `navigator.credentials.get()` API: +var optionsJson = await signInManager.MakePasskeyRequestOptionsAsync(user); +``` + +Below is an example of how a new passkey can be validated and added to a user: + +```csharp +// 'credentialJson' is the JSON-serialized result from `navigator.credentials.create()`. +var attestationResult = await SignInManager.PerformPasskeyAttestationAsync(); +if (attestationResult.Succeeded) +{ + var addPasskeyResult = await UserManager.AddOrUpdatePasskeyAsync(user, attestationResult.Passkey); + // ... +} +else { /* ... */ } +``` + +To sign in with a passkey, use `SignInManager.PasskeySignInAsync()`: +```csharp +// 'credentialJson' is the JSON-serialized result from `navigator.credentials.get()`. +var result = await signInManager.PasskeySignInAsync(credentialJson); +``` +### Getting started with passkeys + +**For new applications:** The Blazor Web App project template now includes passkey functionality out of the box. Create a new Blazor app with passkey support using: + +```sh +dotnet new blazor -au Individual +``` + +## Support for the .localhost top-level domain + +The `.localhost` top-level domain (TLD) is defined in [RFC2606](https://www.rfc-editor.org/rfc/rfc2606) and [RFC6761](https://www.rfc-editor.org/rfc/rfc6761) as being reserved for testing purposes and available for users to use locally as they would any other domain name. This means using a name like `myapp.localhost` locally that resolves to the IP loopback address is allowed and expected according to these RFCs. Additionally, modern evergreen browsers already automatically resolve any `*.localhost` name to the IP loopback address (`127.0.0.1`/`::1`), effectively making them an alias for any service already being hosted at `localhost` on the local machine. + +ASP.NET Core has been updated in .NET 10 preview 7 to better support the `.localhost` TLD, such that it can now be easily used when creating and running ASP.NET Core applications in your local development environment. Having different apps running locally be resolvable via different names allows for better separation of some domain-name-associated website assets, e.g. cookies, and makes it easier to identify which app you're browsing via the name displayed in the browser address bar. + +ASP.NET Core's built-in HTTP server, Kestrel, will now correctly treat any `*.localhost` name set via [supported endpoint configuration mechanisms](https://learn.microsoft.com/aspnet/core/fundamentals/servers/kestrel/endpoints#configure-endpoints) as the local loopback address and thus bind to it rather than all external address (i.e. bind to `127.0.0.1`/`::1` rather than `0.0.0.0`/`::`). This includes the `"applicationUrl"` property in [launch profiles configured in a *launchSettings.json* file](https://learn.microsoft.com/aspnet/core/fundamentals/environments#development-and-launchsettingsjson), and the `ASPNETCORE_URLS` environment variable. When configured to listen on a `.localhost` address, Kestrel will log an information message for both the `.localhost` **and** `localhost` addresses, to make it clear that both names can be used. + +*Note that while web browsers will automatically resolve `*.localhost` names to the local loopback address, other applications may treat `*.localhost` names as a regular domain names and attempt to resolve them via their corresponding DNS stack. If your DNS configuration does not resolve `*.localhost` names to an address then they will fail to connect. You can continue to use the regular `localhost` name to address your applications when not in a web browser.* + +The [ASP.NET Core HTTPS development certificate](https://learn.microsoft.com/aspnet/core/security/enforcing-ssl#trust-the-aspnet-core-https-development-certificate) (including the `dotnet dev-certs https` command) have been updated to ensure the certificate is valid for use with the `*.dev.localhost` domain name. After installing .NET 10 SDK preview 7, trust the new developer certificate by running `dotnet dev-certs https --trust` at the command line to ensure your system is configured to trust the new certificate. + +*Note that the certificate lists the `*.dev.localhost` name as a Subject Alternative Name (SAN) rather than `*.localhost` as it's invalid to have wildcard certificates for top-level domain names* + +The project templates for *ASP.NET Core Empty* (`web`) and *Blazor Web App* (`blazor`) have been updated with a new option that when specified configures the created project to use the `.dev.localhost` domain name suffix, combining it with the project name to allow the app to be browsed to at an address like `https://myapp.dev.localhost:5036`: + +``` +$ dotnet new web -n MyApp --localhost-tld +The template "ASP.NET Core Empty" was created successfully. + +Processing post-creation actions... +Restoring D:\src\MyApp\MyApp.csproj: +Restore succeeded. + +$ cd .\MyApp\ +$ dotnet run --launch-profile https +info: Microsoft.Hosting.Lifetime[14] + Now listening on: https://myapp.dev.localhost:7099 +info: Microsoft.Hosting.Lifetime[14] + Now listening on: https://localhost:7099/ +info: Microsoft.Hosting.Lifetime[14] + Now listening on: http://myapp.dev.localhost:5036 +info: Microsoft.Hosting.Lifetime[14] + Now listening on: http://localhost:5036/ +info: Microsoft.Hosting.Lifetime[0] + Application started. Press Ctrl+C to shut down. +info: Microsoft.Hosting.Lifetime[0] + Hosting environment: Development +info: Microsoft.Hosting.Lifetime[0] + Content root path: D:\src\local\10.0.1xx\MyApp +``` + +## Use PipeReader support in System.Text.Json + +MVC, Minimal APIs, and the `HttpRequestJsonExtensions.ReadFromJsonAsync` methods have all been updated to use the new PipeReader support in System.Text.Json without requiring any code changes from applications. + +For the majority of applications this should have no impact on behavior. However, if the application is using a custom `JsonConverter`, there is a chance that the converter doesn't handle [Utf8JsonReader.HasValueSequence](https://learn.microsoft.com/dotnet/api/system.text.json.utf8jsonreader.hasvaluesequence) correctly. This can result in missing data and errors like `ArgumentOutOfRangeException` when deserializing. + +The quick workaround (especially if you don't own the custom `JsonConverter` being used) is to set the `"Microsoft.AspNetCore.UseStreamBasedJsonParsing"` [AppContext](https://learn.microsoft.com/dotnet/api/system.appcontext) switch to `true`. This should be a temporary workaround and the `JsonConverter`(s) should be updated to support `HasValueSequence`. + +To fix `JsonConverter` implementations, there is the quick fix which allocates an array from the `ReadOnlySequence`: + +```csharp +public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) +{ + var span = reader.HasValueSequence ? reader.ValueSequence.ToArray() : reader.ValueSpan; + // previous code +} +``` + +Or the more complicated (but performant) fix which would involve having a separate code path for the `ReadOnlySequence` handling: + +```csharp +public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) +{ + if (reader.HasValueSequence) + { + reader.ValueSequence; + // ReadOnlySequence optimized path + } + else + { + reader.ValueSpan; + // ReadOnlySpan optimized path + } +} +``` + +## Enhanced validation for classes and records + +Users can now use validation attributes on both classes and records, with consistent code generation and validation behavior. This enhances flexibility when designing models using records in ASP.NET Core applications. + +Thank you [@marcominerva](https://github.com/marcominerva) for this contribution! + +## Blazor improvements + +### Resource preloader component renamed + +The Blazor component for rendering preloading links has been renamed from `LinkPreload` to `ResourcePreloader`. + +### Updated API names for Blazor state persistence + +The new Blazor state persistence APIs have been updated: + +- Renamed JavaScript APIs: `Blazor.pause()` → `Blazor.pauseCircuit()` and `Blazor.resume()` → `Blazor.resumeCircuit()` +- Renamed C# attribute: `SupplyParameterFromPersistentComponentStateAttribute` → `PersistentStateAttribute` + +### Support NotFound in custom Blazor routers + +Custom Blazor routers can now support `NavigationManager.NotFound()` by subscribing to the `NavigationManager.OnNotFound` event: + +```csharp +private void OnNotFoundEvent(object sender, NotFoundEventArgs e) +{ + // Only execute the logic if HTTP response has started, + // because setting args' Path blocks re-execution + if (_httpContext?.Response.HasStarted == false) + { + return; + } + + var type = typeof(CustomNotFoundPage); + var routeAttributes = type.GetCustomAttributes(typeof(RouteAttribute), inherit: true); + if (routeAttributes.Length == 0) + { + throw new InvalidOperationException($"The type {type.FullName} " + + $"does not have a {typeof(RouteAttribute).FullName} applied to it."); + } + + var routeAttribute = (RouteAttribute)routeAttributes[0]; + if (routeAttribute.Template != null) + { + e.Path = routeAttribute.Template; + } +} +``` + +### Updated metric names + +The Blazor diagnostic metrics have been updated to follow OpenTelemetry naming conventions: + +| Old | New | +|----------|----------| +| `aspnetcore.components.render_diff` | Split into `aspnetcore.components.render_diff.duration` and `aspnetcore.components.render_diff.size` | +| `aspnetcore.components.navigation` | `aspnetcore.components.navigate` | +| `aspnetcore.components.event_handler` | `aspnetcore.components.handle_event.duration` | +| `aspnetcore.components.update_parameters` | `aspnetcore.components.update_parameters.duration` + +### Validate configured services for Blazor WebAssembly apps on build + +Previously, circular DI dependencies in Blazor WebAssembly apps would cause the browser to hang with no error message. Now developers get validation errors at build time instead of runtime hangs when running in development. + +To change the default service configuration validation behavior, use the new `UseDefaultServiceProvider` extension methods: + +```csharp +builder.UseDefaultServiceProvider(options => +{ + options.ValidateOnBuild = false; +}); +``` + +## OpenAPI.NET dependency upgraded to stable release + +The ASP.NET Core OpenAPI document generation support has been upgraded to use the 2.0.0 stable release of the OpenAPI.NET library. No further breaking changes are expected in the OpenAPI document generation for this release. + +### Fix ProducesResponseType Description for Minimal APIs + +The Description property for the `ProducesResponseType` attribute is now correctly set in Minimal APIs even when the attribute type and the inferred return type are not an exact match. + +Thank you [@sander1095](https://github.com/sander1095) for this contribution! + +### Correct metadata type for formdata enum parameters + +The metadata type for formdata enum parameters in MVC controller actions has been updated to use the actual enum type instead of string. + +Thank you [@ascott18](https://github.com/ascott18) for this contribution! + +### Unify handling of documentation IDs in OpenAPI XML comment generator + +XML documentation comments from referenced assemblies are now correctly merged if their documentation IDs included return type suffixes. As a result, all valid XML comments are now reliably included in generated OpenAPI documentation, improving doc accuracy and completeness for APIs using referenced assemblies. + +## Contributors + +Thank you contributors! ❤️ + +- [@martincostello](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Amartincostello) +- [@benhopkinstech](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Abenhopkinstech) +- [@timdeschryver](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Atimdeschryver) +- [@sander1095](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Asander1095) +- [@marcominerva](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Amarcominerva) +- [@jashook](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Ajashook) +- [@shethaadit](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Ashethaadit) +- [@ladeak](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Aladeak) +- [@ascott18](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview7+author%3Aascott18) From eafe1e9dad94aaf837c60abf9869de8ea1b3172d Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 09:02:25 -0700 Subject: [PATCH 10/32] Update fsharp for preview 7 (#9999) * Update fsharp for preview 7 * Update release-notes/10.0/preview/preview7/fsharp.md --------- Co-authored-by: Jon Galloway --- release-notes/10.0/preview/preview7/fsharp.md | 1 + 1 file changed, 1 insertion(+) diff --git a/release-notes/10.0/preview/preview7/fsharp.md b/release-notes/10.0/preview/preview7/fsharp.md index dd8dc7c042..0de1b0a719 100644 --- a/release-notes/10.0/preview/preview7/fsharp.md +++ b/release-notes/10.0/preview/preview7/fsharp.md @@ -11,3 +11,4 @@ F# updates in .NET 10: ## Feature Something about the feature +This preview release does not contain new F# features. View the [What's new in F#](https://fsharp.github.io/fsharp-compiler-docs/release-notes/Language.html) documentation to learn more. From 775f769d51e729db89ad8c2e2a230d86af82f883 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 09:07:40 -0700 Subject: [PATCH 11/32] Update sdk for preview 7 (#10002) * Update sdk for preview 7 * add notes about any RID support in .NET tools * Update release-notes/10.0/preview/preview7/sdk.md Co-authored-by: Martin Costello * Update release-notes/10.0/preview/preview7/sdk.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Chet Husk Co-authored-by: Chet Husk Co-authored-by: Martin Costello Co-authored-by: Jon Galloway Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- release-notes/10.0/preview/preview7/sdk.md | 29 +++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/release-notes/10.0/preview/preview7/sdk.md b/release-notes/10.0/preview/preview7/sdk.md index ba9c045a38..30305e54e0 100644 --- a/release-notes/10.0/preview/preview7/sdk.md +++ b/release-notes/10.0/preview/preview7/sdk.md @@ -2,12 +2,35 @@ Here's a summary of what's new in the .NET SDK in this preview release: -- [Feature](#feature) +- [Use the `any` RuntimeIdentifier with platform-specific .NET Tools](#any-rid-in-multi-rid-tools) .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 +## Use the `any` RuntimeIdentifier with platform-specific .NET Tools -Something about the feature +The [platform-specific .NET Tools](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/sdk#platform-specific-net-tools) feature released in preview 6 +is great for making sure your tools are optimized for specific platforms that you target ahead-of-time. However, there are times where you won't know +all of the platforms that you'd like to target, or sometimes .NET itself will learn how to support a new platform, and you'd like your tool to be runnable there too! + +The good news is that .NET is great at this - the platform at its heart is meant to support this kind of platform-agnostic execution. To make your new +platform-specific .NET Tools work this way, you only need to add one thing to your project file: the `any` Runtime Identifier. + +```diff + + + linux-x64; + linux-arm64; + macos-arm64; + win-x64; +- win-arm64 ++ win-arm64; ++ any + + +``` + +This RuntimeIdentifier is at the 'root' of our platform-compatibility checking, and since it declares support for, well, _any_ platform, the tool that we package for you will be the most compatible kind of tool - a framework-dependent, platform-agnostic .NET dll, which requires a compatible .NET Runtime in order to execute. When you perform a `dotnet pack` to create your tool, you'll see a new package for the `any` RuntimeIdentifier appear alongside the other platform-specific packages and the top-level manifest package. + +The eagle-eyed among you will note that this is the exact same kind of tool that you would make in .NET 9 and earlier, but now it fits into the overall goal of enabling platform-specific .NET Tools! \ No newline at end of file From fc9a6be8e0cebb1b54d07048adfd3a75bb9d0a4b Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 09:12:57 -0700 Subject: [PATCH 12/32] Update libraries for preview 7 (#10000) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update libraries for preview 7 * Add notes for CreateNewProcessGroup * Update release-notes/10.0/preview/preview7/libraries.md * Update markdown link * Add cryptography notes * Add PipeReader support for JsonSerializer * change received to sent * Composite ML-DSA * clean up pqc bullet * update PipeReader blurb * Add WebSocketStream * Fix WebSocketStream link and add TLS 1.3 support for macOS client * Update TLS 1.3 notes for macOS Network.framework behavior and edge cases * Update release-notes/10.0/preview/preview7/libraries.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update release-notes/10.0/preview/preview7/libraries.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: David Cantú Co-authored-by: Pranav Senthilnathan Co-authored-by: Jeremy Barton Co-authored-by: Natalia Kondratyeva Co-authored-by: Ahmet Ibrahim Aksoy Co-authored-by: Jon Galloway Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../10.0/preview/preview7/libraries.md | 366 +++++++++++++++++- 1 file changed, 363 insertions(+), 3 deletions(-) diff --git a/release-notes/10.0/preview/preview7/libraries.md b/release-notes/10.0/preview/preview7/libraries.md index abe9ab5351..9192914020 100644 --- a/release-notes/10.0/preview/preview7/libraries.md +++ b/release-notes/10.0/preview/preview7/libraries.md @@ -2,12 +2,372 @@ Here's a summary of what's new in .NET Libraries in this preview release: -- [Feature](#feature) +- [Launch Windows processes in new process group](#launch-windows-processes-in-new-process-group) +- [AES KeyWrap with Padding (IETF RFC 5649)](#aes-keywrap-with-padding-ietf-rfc-5649) +- Post-Quantum Cryptography Updates + - [ML-DSA](#ml-dsa) + - [Composite ML-DSA](#composite-ml-dsa) +- [PipeReader support for JSON serializer](#pipereader-support-for-json-serializer) +- Networking + - [WebSocketStream](#websocketstream) + - [TLS 1.3 for macOS (client)](#tls-13-for-macos-client) .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 +## Launch Windows processes in new process group -Something about the feature +For Windows, you can now use `ProcessStartInfo.CreateNewProcessGroup` to launch a process in a separate PG. This allows you to send isolated signals to child processes which could otherwise take down the parent without proper handling. Sending signals is convenient to avoid forceful termination. + +```csharp +using System; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; +using System.Threading; + +class Program +{ + static void Main(string[] args) + { + bool isChildProcess = args.Length > 0 && args[0] == "child"; + if (!isChildProcess) + { + var psi = new ProcessStartInfo + { + FileName = Environment.ProcessPath, + Arguments = "child", + CreateNewProcessGroup = true, + }; + + using Process process = Process.Start(psi)!; + Thread.Sleep(5_000); + + GenerateConsoleCtrlEvent(CTRL_C_EVENT, (uint)process.Id); + process.WaitForExit(); + + Console.WriteLine("Child process terminated gracefully, continue with the parent process logic if needed."); + } + else + { + // If you need to send a CTRL+C, the child process needs to re-enable CTRL+C handling, if you own the code, you can call SetConsoleCtrlHandler(NULL, FALSE). + // see https://learn.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw#remarks + SetConsoleCtrlHandler((IntPtr)null, false); + + Console.WriteLine("Greetings from the child process! I need to be gracefully terminated, send me a signal!"); + + bool stop = false; + + var registration = PosixSignalRegistration.Create(PosixSignal.SIGINT, ctx => + { + stop = true; + ctx.Cancel = true; + Console.WriteLine("Received CTRL+C, stopping..."); + }); + + StreamWriter sw = File.AppendText("log.txt"); + int i = 0; + while (!stop) + { + Thread.Sleep(1000); + sw.WriteLine($"{++i}"); + Console.WriteLine($"Logging {i}..."); + } + + // Clean up + sw.Dispose(); + registration.Dispose(); + + Console.WriteLine("Thanks for not killing me!"); + } + } + + private const int CTRL_C_EVENT = 0; + private const int CTRL_BREAK_EVENT = 1; + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool SetConsoleCtrlHandler(IntPtr handler, [MarshalAs(UnmanagedType.Bool)] bool Add); + + [DllImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool GenerateConsoleCtrlEvent(uint dwCtrlEvent, uint dwProcessGroupId); +} +``` + +## AES KeyWrap with Padding (IETF RFC 5649) + +AES-KWP is an algorithm that is occasionally used in constructions like Cryptographic Message Syntax (CMS) EnvelopedData, +where content is encrypted once, but the decryption key needs to be distributed to multiple parties, each one in a distinct +secret form. + +.NET now supports the AES-KWP algorithm via instance methods on the `System.Security.Cryptography.Aes` class: + +```csharp +private static byte[] DecryptContent(ReadOnlySpan kek, ReadOnlySpan encryptedKey, ReadOnlySpan ciphertext) +{ + using (Aes aes = Aes.Create()) + { + aes.SetKey(kek); + + Span dek = stackalloc byte[256 / 8]; + int length = aes.DecryptKeyWrapPadded(encryptedKey, dek); + + aes.SetKey(dek.Slice(0, length)); + return aes.DecryptCbc(ciphertext); + } +} +``` + +## Post-Quantum Cryptography Updates + +### ML-DSA + +The `System.Security.Cryptography.MLDsa` class gained ease-of-use updates in this release, allowing some common code patterns to be simplified: + +```diff +private static byte[] SignData(string privateKeyPath, ReadOnlySpan data) +{ + using (MLDsa signingKey = MLDsa.ImportFromPem(File.ReadAllBytes(privateKeyPath))) + { +- byte[] signature = new byte[signingKey.Algorithm.SignatureSizeInBytes]; +- signingKey.SignData(data, signature); ++ return signingKey.SignData(data); +- return signature; + } +} +``` + +Additionally, this release added support for HashML-DSA, which we call "PreHash" to help distinguish it from "pure" ML-DSA. +As the underlying specification interacts with the Object Identifier (OID) value, the SignPreHash and VerifyPreHash methods +on this `[Experimental]` type take the dotted-decimal OID as a string. +This may evolve as more scenarios using HashML-DSA become well-defined. + +```C# +private static byte[] SignPreHashSha3_256(MLDsa signingKey, ReadOnlySpan data) +{ + const string Sha3_256Oid = "2.16.840.1.101.3.4.2.8"; + return signingKey.SignPreHash(SHA3_256.HashData(data), Sha3_256Oid); +} +``` + +### Composite ML-DSA + +This release also introduces new types to support ietf-lamps-pq-composite-sigs (currently at draft 7), +and an implementation of the primitive methods for RSA variants. + +```cs +var algorithm = CompositeMLDsaAlgorithm.MLDsa65WithRSA4096Pss; +using var privateKey = CompositeMLDsa.GenerateKey(algorithm); + +byte[] data = [42]; +byte[] signature = privateKey.SignData(data); + +using var publicKey = CompositeMLDsa.ImportCompositeMLDsaPublicKey(algorithm, privateKey.ExportCompositeMLDsaPublicKey()); +Console.WriteLine(publicKey.VerifyData(data, signature)); // True + +signature[0] ^= 1; // Tamper with signature +Console.WriteLine(publicKey.VerifyData(data, signature)); // False +``` + +## PipeReader support for JSON serializer + +`JsonSerializer.Deserialize` now supports `PipeReader`, complementing the existing `PipeWriter` support. Previously, deserializing from a `PipeReader` required converting it to a `Stream`, but the new overloads eliminate that step by integrating `PipeReader` directly into the serializer. As a bonus, not having to convert from what you're already holding can yield some efficiency benefits. + +This shows the basic usage: + +```cs +var pipe = new Pipe(); + +// Serialize to writer +await JsonSerializer.SerializeAsync(pipe.Writer, new Person("Alice")); +await pipe.Writer.CompleteAsync(); + +// Deserialize from reader +var result = await JsonSerializer.DeserializeAsync(pipe.Reader); +await pipe.Reader.CompleteAsync(); + +Console.WriteLine($"Your name is {result.Name}."); +// Output: Your name is Alice. + +record Person(string Name); +``` + +Here is an example of a producer that produces tokens in chunks and a consumer that receives and displays them. + +```cs +var pipe = new Pipe(); + +// Producer writes to the pipe in chunks +var producerTask = Task.Run(async () => +{ + async static IAsyncEnumerable GenerateResponse() + { + yield return new Chunk("The quick brown fox", DateTime.Now); + await Task.Delay(500); + yield return new Chunk(" jumps over", DateTime.Now); + await Task.Delay(500); + yield return new Chunk(" the lazy dog.", DateTime.Now); + } + + await JsonSerializer.SerializeAsync>(pipe.Writer, GenerateResponse()); + await pipe.Writer.CompleteAsync(); +}); + +// Consumer reads from the pipe and outputs to console +var consumerTask = Task.Run(async () => +{ + var thinkingString = "..."; + var clearThinkingString = new string("\b\b\b"); + var lastTimestamp = DateTime.MinValue; + + // Read response to end + Console.Write(thinkingString); + await foreach (var chunk in JsonSerializer.DeserializeAsyncEnumerable(pipe.Reader)) + { + Console.Write(clearThinkingString); + Console.Write(chunk.Message); + Console.Write(thinkingString); + lastTimestamp = DateTime.Now; + } + + Console.Write(clearThinkingString); + Console.WriteLine($" Last message sent at {lastTimestamp}."); + + await pipe.Reader.CompleteAsync(); +}); + +await producerTask; +await consumerTask; + +record Chunk(string Message, DateTime Timestamp); + +// Output (500ms between each line): +// The quick brown fox... +// The quick brown fox jumps over... +// The quick brown fox jumps over the lazy dog. Last message sent at 8/1/2025 6:41:35 PM. +``` + +Note that all of this is serialized as JSON in the `Pipe` (formatted here for readability): +``` +[ + { + "Message": "The quick brown fox", + "Timestamp": "2025-08-01T18:37:27.2930151-07:00" + }, + { + "Message": " jumps over", + "Timestamp": "2025-08-01T18:37:27.8594502-07:00" + }, + { + "Message": " the lazy dog.", + "Timestamp": "2025-08-01T18:37:28.3753669-07:00" + } +] +``` + +## Networking + +### WebSocketStream + +This release introduces `WebSocketStream`, a new API designed to simplify some of the most common—and previously cumbersome—`WebSocket` scenarios in .NET. + +Traditional `WebSocket` APIs are low-level and require significant boilerplate: handling buffering and framing, reconstructing messages, managing encoding/decoding, and writing custom wrappers to integrate with streams, channels, or other transport abstractions. These complexities make it difficult to use WebSockets as a transport, especially for apps with streaming or text-based protocols, or event-driven handlers. + +**WebSocketStream** addresses these pain points by providing a Stream-based abstraction over a WebSocket. This enables seamless integration with existing APIs for reading, writing, and parsing data, whether binary or text, and reduces the need for manual plumbing. + +**Common Usage Patterns** + +Here are a few examples of how `WebSocketStream` simplifies typical WebSocket workflows: + +**1. Streaming text protocol (e.g., STOMP)** + +```csharp +using Stream transportStream = WebSocketStream.Create( + connectedWebSocket, + WebSocketMessageType.Text, + ownsWebSocket: true); +// Integration with Stream-based APIs +// Don't close the stream, as it's also used for writing +using var transportReader = new StreamReader(transportStream, leaveOpen: true); +var line = await transportReader.ReadLineAsync(cancellationToken); // Automatic UTF-8 and new line handling +transportStream.Dispose(); // Automatic closing handshake handling on `Dispose` +``` + +**2. Streaming binary protocol (e.g., AMQP)** + +```csharp +Stream transportStream = WebSocketStream.Create( + connectedWebSocket, + WebSocketMessageType.Binary, + closeTimeout: TimeSpan.FromSeconds(10)); +await message.SerializeToStreamAsync(transportStream, cancellationToken); +var receivePayload = new byte[payloadLength]; +await transportStream.ReadExactlyAsync(receivePayload, cancellationToken); +transportStream.Dispose(); +// `Dispose` automatically handles closing handshake +``` + +**3. Reading a single message as a stream (e.g., JSON deserialization)** + +```csharp +using Stream messageStream = WebSocketStream.CreateReadableMessageStream(connectedWebSocket, WebSocketMessageType.Text); +// JsonSerializer.DeserializeAsync reads until the end of stream. +var appMessage = await JsonSerializer.DeserializeAsync(messageStream); +``` + +**4. Writing a single message as a stream (e.g., binary serialization)** + +```csharp +public async Task SendMessageAsync(AppMessage message, CancellationToken cancellationToken) +{ + using Stream messageStream = WebSocketStream.CreateWritableMessageStream(_connectedWebSocket, WebSocketMessageType.Binary); + foreach (ReadOnlyMemory chunk in message.SplitToChunks()) + { + await messageStream.WriteAsync(chunk, cancellationToken); + } +} // EOM sent on messageStream.Dispose() +``` + +**WebSocketStream** enables high-level, familiar APIs for common WebSocket consumption and production patterns—reducing friction and making advanced scenarios easier to implement. + +### TLS 1.3 for macOS (client) + +This release adds client-side TLS 1.3 support on macOS by integrating Apple’s Network.framework into SslStream and HttpClient. Historically, macOS used Secure Transport which doesn’t support TLS 1.3; opting into Network.framework enables TLS 1.3. + +Scope and behavior + +- macOS only, client-side in this release. +- Opt-in. Existing apps continue to use the current stack unless enabled. +- When enabled, older TLS versions (TLS 1.0 and 1.1) may no longer be available via Network.framework. + +How to enable + +- AppContext switch in code: + +```csharp +// Opt in to Network.framework-backed TLS on Apple platforms +AppContext.SetSwitch("System.Net.Security.UseNetworkFramework", true); + +using var client = new HttpClient(); +var html = await client.GetStringAsync("https://example.com"); +``` + +- Or environment variable: + +```bash +# Opt-in via environment variable (set for the process or machine as appropriate) +DOTNET_SYSTEM_NET_SECURITY_USENETWORKFRAMEWORK=1 +# or +DOTNET_SYSTEM_NET_SECURITY_USENETWORKFRAMEWORK=true +``` + +Notes + +- Applies to SslStream and APIs built on it (e.g., HttpClient/HttpMessageHandler). +- Cipher suites are controlled by macOS via Network.framework. +- Underlying stream behavior may differ when Network.framework is enabled (e.g., buffering, read/write completion, cancellation semantics). +- Zero-byte reads: semantics may differ. Avoid relying on zero-length reads for detecting data availability. +- Internationalized domain names (IDN): certain IDN hostnames may be rejected by Network.framework. Prefer ASCII/Punycode (A-label) hostnames or validate names against macOS/Network.framework constraints. +- If your app relies on specific SslStream edge-case behavior, validate it under Network.framework. From 125f65d7a58bb061ced5c29f0382fee0665858bd Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 09:18:05 -0700 Subject: [PATCH 13/32] Update csharp for preview 7 (#9996) * Update csharp for preview 7 * Add C# preview 7 features. Add the remaining C# 14 features delivered in .NET 10 preview 7. * Update release-notes/10.0/preview/preview7/csharp.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update release-notes/10.0/preview/preview7/csharp.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Bill Wagner Co-authored-by: Jon Galloway Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- release-notes/10.0/preview/preview7/csharp.md | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/release-notes/10.0/preview/preview7/csharp.md b/release-notes/10.0/preview/preview7/csharp.md index 0f3b41fe57..101613e5f2 100644 --- a/release-notes/10.0/preview/preview7/csharp.md +++ b/release-notes/10.0/preview/preview7/csharp.md @@ -2,12 +2,43 @@ Here's a summary of what's new in C# in this preview release: -- [Feature](#feature) +- [Extension operators](#extension-operators) +- [Named and optional arguments in expression trees](#named-and-optional-parameters-in-expression-trees) + +Preview 7 represents feature complete for C# 14. Any features available only in later previews will be gated behind feature flags. That enables a longer feedback cycle for any additional features. C# updates in .NET 10: -- [What's new in C# 13](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-13) documentation +- [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) + +## Extension operators + +The new extension blocks now include support for *operators*, with the exception of implicit and explicit conversion operators. You can declare operators in extension blocks, as shown in the following example: + +```csharp +public static class Operators +{ + extension(TElement[] source) where TElement : INumber + { + public static TElement[] operator *(TElement[] vector, TElement scalar) { ... } + public static TElement[] operator *(TElement scalar, TElement[] vector) { ... } + public void operator *=(TElement scalar) { ... } + public static bool operator ==(TElement[] left, TElement[] right) { ... } + public static bool operator !=(TElement[] left, TElement[] right) { ... } + } +} +``` + +Several of the rules for extension operators are demonstrated in the preceding example: + +- At least one of the operands must be the *extended type*, `TElement[]` in the preceding example. +- For operators that require pair-wise declarations, such as `==` and `!=` in the preceding example, both operators must be declared in the same static class. They are not required to be in the same `extension` container. +- Instance compound assignment operators, and instance increment and decrement operators are expected to mutate the current instance. Therefore reference type parameters must be passed by value and value type parameters must be passed by `ref`. These operators can't be declared when the extended type is an unconstrained type parameter. +- Extension operators, like other extension members, can't use the `abstract`, `virtual`, `override`, or `sealed` modifiers. This is consistent with other extension members. + +Extension members are only considered for overload resolution when no applicable predefined or user defined non-extension members are found. -## Feature +## Named and optional parameters in expression trees -Something about the feature +This is a small feature that removes a limitation for *expression trees*. Code in expression trees no longer needs to declare arguments for all optional parameters. In addition, code in expression trees can include named arguments. The call rewriting orders named arguments and provides values for missing optional parameters. Query providers shouldn't need to make any adjustments for this support. From 56637e876189596de27123961c24647a4ce28f05 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 09:19:12 -0700 Subject: [PATCH 14/32] Update containers for preview 7 (#9995) * Update containers for preview 7 * Add dnx feature notes --------- Co-authored-by: Logan Bussell --- .../10.0/preview/preview7/containers.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/release-notes/10.0/preview/preview7/containers.md b/release-notes/10.0/preview/preview7/containers.md index 235a667fa7..6be4a496d7 100644 --- a/release-notes/10.0/preview/preview7/containers.md +++ b/release-notes/10.0/preview/preview7/containers.md @@ -2,12 +2,25 @@ Here's a summary of what's new in Containers in this preview release: -- [Feature](#feature) +- [`dnx` is now on the `PATH` in SDK images](#dnx-is-now-on-the-path-in-sdk-images) Containers updates in .NET 10: - [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation -## Feature +## `dnx` is now on the `PATH` in SDK images -Something about the feature +`dnx` is now available directly from .NET 10 SDK container images. See [One-shot tool execution](../preview6/sdk.md#one-shot-tool-execution) for more details about `dnx`. + +To run a .NET tool using `dnx` in your Dockerfile build, you can use the following syntax: + +```Dockerfile +FROM mcr.microsoft.com/dotnet/sdk:10.0-preview +RUN dnx --yes [...] +``` + +To use `dnx` from the .NET SDK image directly from the command line, you can use the following Docker command: + +```console +docker run --rm mcr.microsoft.com/dotnet/sdk:10.0-preview dnx --yes [...] +``` From 58c582b15541bd74155bfd2c0daaa82f5b54a418 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 09:31:08 -0700 Subject: [PATCH 15/32] Update runtime for preview 7 (#10001) * Update runtime for preview 7 * Update release-notes/10.0/preview/preview7/runtime.md --------- Co-authored-by: Jon Galloway --- release-notes/10.0/preview/preview7/runtime.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/release-notes/10.0/preview/preview7/runtime.md b/release-notes/10.0/preview/preview7/runtime.md index 7e1590c0cb..995a5f7f3c 100644 --- a/release-notes/10.0/preview/preview7/runtime.md +++ b/release-notes/10.0/preview/preview7/runtime.md @@ -11,3 +11,6 @@ Here's a summary of what's new in the .NET Runtime in this preview release: ## Feature Something about the feature +# Runtime updates in .NET 10 Preview 7 - Release Notes + +This preview release does not contain new runtime features. From d21877d543e69f0d8f7d3042e3f71a2a3a8709c8 Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:38:01 -0700 Subject: [PATCH 16/32] Update 10.0.0-preview.7.md --- .../10.0/preview/preview7/10.0.0-preview.7.md | 744 ++++++++++++++++-- 1 file changed, 690 insertions(+), 54 deletions(-) diff --git a/release-notes/10.0/preview/preview7/10.0.0-preview.7.md b/release-notes/10.0/preview/preview7/10.0.0-preview.7.md index 7197a264f9..3e664efed4 100644 --- a/release-notes/10.0/preview/preview7/10.0.0-preview.7.md +++ b/release-notes/10.0/preview/preview7/10.0.0-preview.7.md @@ -3,7 +3,7 @@ .NET 10 Preview 7 installers and binaries can be downloaded for the following product versions: - `.NET 10.0.0 Preview 7` -- `.NET SDK 10.0.100-preview.7.25xxx.xxx` +- `.NET SDK 10.0.100-preview.7.25380.108` See [README.md](README.md) for .NET 10 release notes and discussions. @@ -27,7 +27,7 @@ You can check your .NET SDK version by running the following command. The exampl ```console $ dotnet --version -10.0.100-preview.7.25xxx.xxx +10.0.100-preview.7.25380.108 ``` ## .NET Multi-Platform App UI (MAUI) Workload Downloads @@ -80,63 +80,699 @@ Your feedback is important and appreciated. We've created a discussion at Date: Tue, 12 Aug 2025 09:39:53 -0700 Subject: [PATCH 17/32] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 07a90c8588..27dfbc7657 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ Welcome to the home of .NET [release notes](./release-notes/README.md) and [news | Version | Release Date | Release type | Support phase | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | :-- | -| [.NET 10.0](release-notes/10.0/README.md) | November 11, 2025 | [LTS][policies] | Preview | [10.0.0-preview.6][10.0.0-preview.6] | TBD | +| [.NET 10.0](release-notes/10.0/README.md) | November 11, 2025 | [LTS][policies] | Preview | [10.0.0-preview.7][10.0.0-preview.7] | TBD | | [.NET 9.0](release-notes/9.0/README.md) | [November 12, 2024](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/) | [STS][policies] | Active | [9.0.8][9.0.8] | May 12, 2026 | | [.NET 8.0](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | Active | [8.0.19][8.0.19] | November 10, 2026 | -[10.0.0-preview.6]: release-notes/10.0/preview/preview6/10.0.0-preview.6.md +[10.0.0-preview.7]: release-notes/10.0/preview/preview7/10.0.0-preview.7.md [9.0.8]: release-notes/9.0/9.0.8/9.0.8.md [8.0.19]: release-notes/8.0/8.0.19/8.0.19.md [policies]: release-policies.md From 316a1a4c11d8a2892f2bc2b4f86117d06ee1b5cb Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:40:29 -0700 Subject: [PATCH 18/32] Update releases.md --- releases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releases.md b/releases.md index 932457b290..6e7bf6e903 100644 --- a/releases.md +++ b/releases.md @@ -10,11 +10,11 @@ The following table lists supported releases. | Version | Release Date | Release type | Support phase | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | :-- | -| [.NET 10.0](release-notes/10.0/README.md) | November 11, 2025 | [LTS][policies] | Preview | [10.0.0-preview.6][10.0.0-preview.6] | TBD | +| [.NET 10.0](release-notes/10.0/README.md) | November 11, 2025 | [LTS][policies] | Preview | [10.0.0-preview.7][10.0.0-preview.7] | TBD | | [.NET 9.0](release-notes/9.0/README.md) | [November 12, 2024](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/) | [STS][policies] | Active | [9.0.8][9.0.8] | May 12, 2026 | | [.NET 8.0](release-notes/8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | Active | [8.0.19][8.0.19] | November 10, 2026 | -[10.0.0-preview.6]: release-notes/10.0/preview/preview6/10.0.0-preview.6.md +[10.0.0-preview.7]: release-notes/10.0/preview/preview7/10.0.0-preview.7.md [9.0.8]: release-notes/9.0/9.0.8/9.0.8.md [8.0.19]: release-notes/8.0/8.0.19/8.0.19.md From b6a9850c2af47f4916d78bca340bce268d62872d Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:42:28 -0700 Subject: [PATCH 19/32] Update README.md --- release-notes/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release-notes/README.md b/release-notes/README.md index 0efdecd43d..b1f3263aa9 100644 --- a/release-notes/README.md +++ b/release-notes/README.md @@ -4,11 +4,11 @@ | Version | Release Date | Release type | Support phase | Latest Patch Version | End of Support | | :-- | :-- | :-- | :-- | :-- | :-- | -| [.NET 10.0](./10.0/README.md) | November 11, 2025 | [LTS][policies] | Preview | [10.0.0-preview.6][10.0.0-preview.6] | TBD | +| [.NET 10.0](./10.0/README.md) | November 11, 2025 | [LTS][policies] | Preview | [10.0.0-preview.7][10.0.0-preview.7] | TBD | | [.NET 9.0](./9.0/README.md) | [November 12, 2024](https://devblogs.microsoft.com/dotnet/announcing-dotnet-9/) | [STS][policies] | Active | [9.0.8][9.0.8] | May 12, 2026 | | [.NET 8.0](./8.0/README.md) | [November 14, 2023](https://devblogs.microsoft.com/dotnet/announcing-dotnet-8/) | [LTS][policies] | Active | [8.0.19][8.0.19] | November 10, 2026 | -[10.0.0-preview.6]: ./10.0/preview/preview6/10.0.0-preview.6.md +[10.0.0-preview.7]: ./10.0/preview/preview7/10.0.0-preview.7.md [9.0.8]: ./9.0/9.0.8/9.0.8.md [8.0.19]: ./8.0/8.0.19/8.0.19.md From d4096c664448a42270231c87f950146571f86841 Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:43:04 -0700 Subject: [PATCH 20/32] Update releases-index.json --- release-notes/releases-index.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/release-notes/releases-index.json b/release-notes/releases-index.json index 66e35137ea..bd51f5a9b4 100644 --- a/release-notes/releases-index.json +++ b/release-notes/releases-index.json @@ -3,11 +3,11 @@ "releases-index": [ { "channel-version": "10.0", - "latest-release": "10.0.0-preview.6", - "latest-release-date": "2025-07-15", + "latest-release": "10.0.0-preview.7", + "latest-release-date": "2025-08-12", "security": false, - "latest-runtime": "10.0.0-preview.6.25358.103", - "latest-sdk": "10.0.100-preview.6.25358.103", + "latest-runtime": "10.0.0-preview.7.25380.108", + "latest-sdk": "10.0.100-preview.7.25380.108", "product": ".NET", "support-phase": "preview", "release-type": "lts", From afb8932d3a3f4795b1595dba31d470620f729638 Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:44:03 -0700 Subject: [PATCH 21/32] Update README.md --- release-notes/10.0/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/release-notes/10.0/README.md b/release-notes/10.0/README.md index 32efbd9f39..d1f29d2c6a 100644 --- a/release-notes/10.0/README.md +++ b/release-notes/10.0/README.md @@ -16,6 +16,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele | Date | Release | | :-- | :-- | +| 2025/08/12 | [10.0.0 Preview 7](preview/preview6/README.md) | | 2025/07/15 | [10.0.0 Preview 6](preview/preview6/README.md) | | 2025/06/10 | [10.0.0 Preview 5](preview/preview5/README.md) | | 2025/05/10 | [10.0.0 Preview 4](preview/preview4/README.md) | @@ -26,6 +27,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### .NET Libraries - [What's new in .NET 10 libraries](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview#net-libraries) +- [Preview 7](preview/preview7/libraries.md) - [Preview 6](preview/preview6/libraries.md) - [Preview 5](preview/preview5/libraries.md) - [Preview 4](preview/preview4/libraries.md) @@ -36,6 +38,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### .NET Runtime - [What's new in the .NET 10 runtime](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/runtime) +- [Preview 7](preview/preview7/runtime.md) - [Preview 6](preview/preview6/runtime.md) - [Preview 5](preview/preview5/runtime.md) - [Preview 4](preview/preview4/runtime.md) @@ -46,6 +49,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### .NET SDK - [What's new in the SDK for .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/sdk) +- [Preview 7](preview/preview7/sdk.md) - [Preview 6](preview/preview6/sdk.md) - [Preview 5](preview/preview5/sdk.md) - [Preview 4](preview/preview4/sdk.md) @@ -56,6 +60,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### C\# - [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) +- [Preview 7](preview/preview7/csharp.md) - [Preview 6](preview/preview6/csharp.md) - [Preview 5](preview/preview5/csharp.md) - [Preview 4](preview/preview4/csharp.md) @@ -66,6 +71,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### ASP.NET Core - [What's new in ASP.NET Core 10.0](https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0) +- [Preview 7](preview/preview7/aspnetcore.md) - [Preview 6](preview/preview6/aspnetcore.md) - [Preview 5](preview/preview5/aspnetcore.md) - [Preview 4](preview/preview4/aspnetcore.md) @@ -76,6 +82,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### .NET MAUI - [What's new in .NET MAUI for .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) +- [Preview 7](preview/preview7/dotnetmaui.md) - [Preview 6](preview/preview6/dotnetmaui.md) - [Preview 5](preview/preview5/dotnetmaui.md) - [Preview 4](preview/preview4/dotnetmaui.md) @@ -86,6 +93,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### Entity Framework Core - [What's new in EF Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) +- [Preview 7](preview/preview7/efcore.md) - [Preview 6](preview/preview6/efcore.md) - [Preview 5](preview/preview5/efcore.md) - [Preview 4](preview/preview4/efcore.md) @@ -96,6 +104,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### Windows Forms - [What's new in Windows Forms for .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) +- [Preview 7](preview/preview7/winforms.md) - [Preview 6](preview/preview6/winforms.md) - [Preview 5](preview/preview5/winforms.md) - [Preview 4](preview/preview4/winforms.md) @@ -106,6 +115,7 @@ It is currently in development and not supported. .NET 10 is expected to be rele ### Windows Presentation Foundation (WPF) - [What's new in WPF for .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) +- [Preview 7](preview/preview7/wpf.md) - [Preview 6](preview/preview6/wpf.md) - [Preview 5](preview/preview5/wpf.md) - [Preview 4](preview/preview4/wpf.md) From a02cbc046d6ce98500540e01cb57ea0efdf98bbf Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:45:09 -0700 Subject: [PATCH 22/32] Update releases.json --- release-notes/10.0/releases.json | 704 ++++++++++++++++++++++++++++++- 1 file changed, 700 insertions(+), 4 deletions(-) diff --git a/release-notes/10.0/releases.json b/release-notes/10.0/releases.json index 6d2f7f4a2e..2ac86f5e24 100644 --- a/release-notes/10.0/releases.json +++ b/release-notes/10.0/releases.json @@ -1,13 +1,709 @@ { "channel-version": "10.0", - "latest-release": "10.0.0-preview.6", - "latest-release-date": "2025-07-15", - "latest-runtime": "10.0.0-preview.6.25358.103", - "latest-sdk": "10.0.100-preview.6.25358.103", + "latest-release": "10.0.0-preview.7", + "latest-release-date": "2025-08-12", + "latest-runtime": "10.0.0-preview.7.25380.108", + "latest-sdk": "10.0.100-preview.7.25380.108", "support-phase": "preview", "release-type": "lts", "lifecycle-policy": "https://aka.ms/dotnetcoresupport", "releases": [ + { + "release-date": "2025-11-11", + "release-version": "10.0.0-preview.7", + "security": false, + "cve-list": [], + "release-notes": "https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview7/10.0.0-preview.7.md", + "runtime": { + "version": "10.0.0-preview.7.25380.108", + "version-display": "10.0.0-preview.7", + "vs-version": "", + "vs-mac-version": "", + "files": [ + { + "name": "dotnet-apphost-pack-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "54b4c6a175b6165351216afb9aa1416e911549cd9bf6b72a2714321deb139453a838b57f2b567c93e2471a449882ad1bc0db40d273537675e58d4b3431bdfc12" + }, + { + "name": "dotnet-apphost-pack-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "3fb619a47a8f9595d7210de60e159da03f732fa2200f5aa9a0edb9ae269e412c61a04016d20f8fb43f6fe4c29305566f15202e59c4322667b7f417cb4f389c31" + }, + { + "name": "dotnet-apphost-pack-linux-bionic-arm64.tar.gz", + "rid": "linux-bionic-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-bionic-arm64.tar.gz", + "hash": "7183951a0c82804a057acd5cbbed199d3065f8ec02888de04dd6bcda43656e05740735acbb3b388162723e24b2e0d4c39cd74957b8a20f8ff4e19447cdd0f952" + }, + { + "name": "dotnet-apphost-pack-linux-bionic-x64.tar.gz", + "rid": "linux-bionic-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-bionic-x64.tar.gz", + "hash": "183d68c3f6512f2ab39830dc7ae95600ce8ed85ef6e6037af0f32d502e70d82d7f25de46835217007a5540d965b9bbfa782d8cc6c611a1065d99613347310dc0" + }, + { + "name": "dotnet-apphost-pack-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "56fe7eab141c6e1c550ecd3e46cf9e6f0e5e554ebc3aa749cd4ef1154eea19cfef276f25afea79435fc210310df47505cb920091b7f7b6f8084ad9a27d26f588" + }, + { + "name": "dotnet-apphost-pack-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "185dd3b0252e003a0ae9491b03a4bbe96ba3b55c22e4e32b5fc71c4befbb3985fc599d272837c4ef19420d8c267a92b927cfabfa32eb99f010df5a950d669437" + }, + { + "name": "dotnet-apphost-pack-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "bb34f05b8ae4cd853019994776912b6bb2495f2daa0b4b223cc3a9be69177a1a9828526d720c62a3210465432d2118b7d1656781ec6ca611aa7c37858837c6d9" + }, + { + "name": "dotnet-apphost-pack-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "dda8eeb6888b741497739e4c594052226388767059d122b5f741154453768d7f061068e298933fabd160a22840f2eff58be2282e73793d353da934b0b0f0d98d" + }, + { + "name": "dotnet-apphost-pack-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "eb40989973ace2a81466b4318f0a2df238dd51d6e529d4821cc7114ffb0bde94aba30b99d76f1f5cfdedb7b196e79091e5d62b95411fb9b7a9ff8b14cc2edc79" + }, + { + "name": "dotnet-apphost-pack-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "1cbf0d5a38a8c6ab51728ed42af0eed6f3df33063b7934f518d19b9c5dbdb53265d6e0e1325957e50fe1b5cbc6862982046cc2cbb47498607054ad4caf062c3d" + }, + { + "name": "dotnet-apphost-pack-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "d69896cb005f8d17e830c81af19ab506934b9f9122005db25bf7bba8008398c6229c3ffc9d813c58c5dccfe4c30bd2a9a5fb40eaafe3bd02ab9f804fff5b5ed8" + }, + { + "name": "dotnet-apphost-pack-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "c28b16a68f6af4ba65f87b19f7d6985aa67d7f64c45040ff70ee642cd6d0acda9d3161e1db6dad44f3128fde11aee08507b9d81d15b5a8edff89228a57c97cfe" + }, + { + "name": "dotnet-apphost-pack-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "7e6453ff6e53551ed1a3a7cab2b5641ac9399302a71b69e696d6ecbc2ae1656179a079f4359390044f3905491c33202dd65eac1e2f1fbee756e66647c30148ce" + }, + { + "name": "dotnet-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "a32691868bc61531a32fa3bbf11341646ac51416ac52f680093c577d33b638306a26a0a3279a686a86543e0f2fdcca0e7a07f360817952945dc9b46de29c9709" + }, + { + "name": "dotnet-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "b5301eaae11409bdbf31983bc69937f70dd17b355ef380f4cab317e921e5d66162642cd57d19a14fbba0efc09a76335c6e5f2ee998a60c4ac762cb17251d3840" + }, + { + "name": "dotnet-runtime-linux-bionic-arm64.tar.gz", + "rid": "linux-bionic-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-bionic-arm64.tar.gz", + "hash": "bab9c7b22a41263d76f6c002555e3aa3a3d22476b78145d186823600e14d1e77d1899797b9d4261e29005cf207ed9e5a9d12358beeb14fca2b9d524c2707fb24" + }, + { + "name": "dotnet-runtime-linux-bionic-x64.tar.gz", + "rid": "linux-bionic-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-bionic-x64.tar.gz", + "hash": "d177d37d0e21f9b7e190ceaab26459f4c4f44e7c2eb496cc5af91bfe3633502d89e47c2e6262ab0a61a4219c4d83d690371964b50bbc4dc9796a2e37833c2007" + }, + { + "name": "dotnet-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "6820978d7c737a9ffb3e3f481ac0c3026dc546c1f427396a8309027538b086ef901071e22a2089b778af5e51bc689a4414202cefd96091cd33015b50f7e1ad1c" + }, + { + "name": "dotnet-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "c4902564728b931d23207a231cd4946422afaad1508e918c2127dc8236dcff2a95357410e2f0bad5b2d8719c6414c2092d09380c3ae70151b5920a32bb3387cf" + }, + { + "name": "dotnet-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "c027d4879ce290a13835a256b58adaaaeda176f09882c7a3e36fb0e2293b428eff53e621a478fec45d928f178bdd52e7f4a2b4de9e02d20494c4b9925ccb6406" + }, + { + "name": "dotnet-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "127487209cb3c4a394847cced5a15db8c5b66c93866e88b4a70789ea2c90b41e2993e00d9192d4ba988f33ddbc89a5ca2fe4f19a611d7ed8ad8c3e0a4692c501" + }, + { + "name": "dotnet-runtime-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-osx-arm64.pkg", + "hash": "9bbadf6c5239d82b80326cd09abf90602bb7981018ea210be147937a440838360fcf82d9e69a010c9101ebbfc691f48931c34bc789f3ee77fbd40414deca3a21" + }, + { + "name": "dotnet-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "ef607e73cd97ada3cda31a0cbea556cd60409a2612a94127271b9bf925e12df84cf7b326b0b5eddecd3bace37fd6fa7010d487cddc5c2324745ded96f8bca600" + }, + { + "name": "dotnet-runtime-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-osx-x64.pkg", + "hash": "06d6840d8a0a7db9d4dbb74fc6044d053d9f3795e707417481b3179101cd4279028a89704b467002e0983a1af1bd06ce477233c583de35b4ca5bb540154499d0" + }, + { + "name": "dotnet-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "e24067fdd47c6ff8d308d3673702ba143fdadd50b4a5171af2aab7e80633eee19e66a0b6940bea4aae988a4d391155a35ba78e57760cdddda5af5ebd335b3d10" + }, + { + "name": "dotnet-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-arm64.exe", + "hash": "a6943907fbb8ae9c710a0a9d374894d116c0fc6757f2a7069850a32bc52c92851403502e05e9097a075815bcb6dd1b12c8c951d9a03be1ee92560512de7b21aa" + }, + { + "name": "dotnet-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "77f346452d57a0b6ca016effdea2e3918244bcb22f5a8e4d996c558964613d4047a7a6c2d7b49cfd4f595e1b010ba240a75d4d6bf1cfb830948fa9bafd0e6afc" + }, + { + "name": "dotnet-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-x64.exe", + "hash": "eb9bd5f62fa364a81008e192fcac50e32773e31b43e6f00395fd26d6fa01805a776c2168274b1e61e86e6ebc52116b5bd0286ec63127583b0298886c5b13fcfa" + }, + { + "name": "dotnet-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "6cc336587bcf32e3cdfe3cdaf3505575508fe753c5e263dbd95c7bfb6f8e0e30c3e7ca4fded20ddda24805bd8d1204e04b2b8fb78bf1e94c4e58d04f61f4c305" + }, + { + "name": "dotnet-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-x86.exe", + "hash": "a1f2cd7de077bebd7692f413b45cb06d194606da22d87124894973ee5bdd780d9d4d8f87fcc07b3ffdf8e9900025544ab5c7eb89c1635cb98eb4d04ddd7529cb" + }, + { + "name": "dotnet-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "9362a5f247f342582da837fde1a3fe227ab9b50c741502fe45ad2070827e90fbf88644294d99630c939d81b143bbca88c0ee961b924f829bf20feaa0d47fe7ef" + } + ] + }, + "sdk": { + "version": "10.0.100-preview.7.25380.108", + "version-display": "10.0.100-preview.7", + "runtime-version": "10.0.0-preview.7.25380.108", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "", + "vs-mac-support": "", + "csharp-version": "13.0", + "fsharp-version": "9.0", + "vb-version": "17.13", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-arm.tar.gz", + "hash": "9279bfc306cf53fdc02673c68ebc06818b26fb05ee904ff315e8ff528a8d58b5342a86642233a4a67222f507b60110b8218492c7b97971bee78fb10a15f8aee8" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "a81889cf42cecf616a7685cab17508694cee83e76a9619c64e89afaff4d382668ea4c7edfdeb4453a0c13dfceeac866ea3d0fe05f3df124638a4ca58b4fda725" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "0fae7f41d67983923419632aa1cf895bd2bed286812dccac58b524ae0c6b801bb1855509d6df4bf847e4c40c79965df5cf606bc07f22578f49cc0a3eff57448d" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "cc88dcc54d906dd212f4c383de07d34947cc4b6459240b5fc13a9e8b6e5d7d482bca67357178b14195057ef883c7e60e4ffd80aef484c98a973987fe4993c1a3" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "85ca6e728465581971af358bedd2640c00c9d75c49cac1fa9b3de996b40a13e95f35b7573defaefebdfc674c478e8b579f81a1030be3f160b6720b31fdfd68a1" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-x64.tar.gz", + "hash": "28d03c2da411e8161bfa37148f35ff622eaa2341adcd729a7b523f74aa21e8f7f65019da10d286d67858d19ff60082380b87436df9bcce27147b4fdb21286fb2" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-arm64.pkg", + "hash": "8b2582b14502670403c56a4aea6362422c627ab26249f5df99c486ff6e9735a37056685b2cd9a01f3670c790cbea2975c1966df529a67d7278a078dde222ed9b" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "788fdeed5df50049bcfe1370059cdfa743390a42d9bf52c745563eaac44bf54a954aaca356364bab6b5b108b1b6d9e0d6cf27c253d2e62b0644004669f8197c7" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-x64.pkg", + "hash": "0700a05cbd7da683c02a9438d6cd11326c6f32e88fce49196641ad84381d7c675065477b26c409b20be0860e2429252135642587021e6fcf636bfcfe4563ab65" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-x64.tar.gz", + "hash": "fc3934725b09247325ee10e56819616722a630f4814bb93c43b60b2edbd32ee23cddeb0045d6400808b840d050ed0dc4b5bcf95a90de1b932936b62356e1ea55" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-arm64.exe", + "hash": "a019d16df4404f33b200abd5c24cb2b5cc0a81174d795b6b64ceb165afe5fe2ef8b460267db42e12ed22486adec5294ba0c3915b37f721faa2f452cbdb605718" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-arm64.zip", + "hash": "7b4ecb1646191e335b3e8fed6a438aafd347896f537888af2038034e1d3c5d59aca9e84a7eea7ca62269560e6407757a5d16d6021b9f5026eb60e311ed7a793d" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x64.exe", + "hash": "5101cb87b0acd2704badc044c3874be02b6338fc21de059c22c695491aa58b5e3e91bea9ba068dfd5c1ebe8523ec843d3fd991628dbafcaf7b3e36ab2b0bc9ae" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x64.zip", + "hash": "c97a06d6859a9abb054a846f3f9b7f4b366fce26d25f411c0f793ca4777bd8f641214aaafb9a84f278b6d78f362e34e4167be460968145f4d2a764de777afdcc" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x86.exe", + "hash": "c9d6bd67b761fc582ceb28aa5bf87519f226f249366c5043c554aae57cda12c805b4c099c0e66ea9dace3df0244f4949e49112deebb17a8562ade07fd5dc385d" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x86.zip", + "hash": "e4e95b50ef7f86542f4af21447b2f6cab73c9479d532fe225cd80b53b14382b21dc6dd8da1cc7a2ec74b79eca9e049279708750880cb3bee9b616a97bb8294aa" + } + ] + }, + "sdks": [ + { + "version": "10.0.100-preview.7.25380.108", + "version-display": "10.0.100-preview.7", + "runtime-version": "10.0.0-preview.7.25380.108", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "", + "vs-mac-support": "", + "csharp-version": "13.0", + "fsharp-version": "9.0", + "vb-version": "17.13", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-arm.tar.gz", + "hash": "9279bfc306cf53fdc02673c68ebc06818b26fb05ee904ff315e8ff528a8d58b5342a86642233a4a67222f507b60110b8218492c7b97971bee78fb10a15f8aee8" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "a81889cf42cecf616a7685cab17508694cee83e76a9619c64e89afaff4d382668ea4c7edfdeb4453a0c13dfceeac866ea3d0fe05f3df124638a4ca58b4fda725" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "0fae7f41d67983923419632aa1cf895bd2bed286812dccac58b524ae0c6b801bb1855509d6df4bf847e4c40c79965df5cf606bc07f22578f49cc0a3eff57448d" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "cc88dcc54d906dd212f4c383de07d34947cc4b6459240b5fc13a9e8b6e5d7d482bca67357178b14195057ef883c7e60e4ffd80aef484c98a973987fe4993c1a3" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "85ca6e728465581971af358bedd2640c00c9d75c49cac1fa9b3de996b40a13e95f35b7573defaefebdfc674c478e8b579f81a1030be3f160b6720b31fdfd68a1" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-x64.tar.gz", + "hash": "28d03c2da411e8161bfa37148f35ff622eaa2341adcd729a7b523f74aa21e8f7f65019da10d286d67858d19ff60082380b87436df9bcce27147b4fdb21286fb2" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-arm64.pkg", + "hash": "8b2582b14502670403c56a4aea6362422c627ab26249f5df99c486ff6e9735a37056685b2cd9a01f3670c790cbea2975c1966df529a67d7278a078dde222ed9b" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "788fdeed5df50049bcfe1370059cdfa743390a42d9bf52c745563eaac44bf54a954aaca356364bab6b5b108b1b6d9e0d6cf27c253d2e62b0644004669f8197c7" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-x64.pkg", + "hash": "0700a05cbd7da683c02a9438d6cd11326c6f32e88fce49196641ad84381d7c675065477b26c409b20be0860e2429252135642587021e6fcf636bfcfe4563ab65" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-x64.tar.gz", + "hash": "fc3934725b09247325ee10e56819616722a630f4814bb93c43b60b2edbd32ee23cddeb0045d6400808b840d050ed0dc4b5bcf95a90de1b932936b62356e1ea55" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-arm64.exe", + "hash": "a019d16df4404f33b200abd5c24cb2b5cc0a81174d795b6b64ceb165afe5fe2ef8b460267db42e12ed22486adec5294ba0c3915b37f721faa2f452cbdb605718" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-arm64.zip", + "hash": "7b4ecb1646191e335b3e8fed6a438aafd347896f537888af2038034e1d3c5d59aca9e84a7eea7ca62269560e6407757a5d16d6021b9f5026eb60e311ed7a793d" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x64.exe", + "hash": "5101cb87b0acd2704badc044c3874be02b6338fc21de059c22c695491aa58b5e3e91bea9ba068dfd5c1ebe8523ec843d3fd991628dbafcaf7b3e36ab2b0bc9ae" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x64.zip", + "hash": "c97a06d6859a9abb054a846f3f9b7f4b366fce26d25f411c0f793ca4777bd8f641214aaafb9a84f278b6d78f362e34e4167be460968145f4d2a764de777afdcc" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x86.exe", + "hash": "c9d6bd67b761fc582ceb28aa5bf87519f226f249366c5043c554aae57cda12c805b4c099c0e66ea9dace3df0244f4949e49112deebb17a8562ade07fd5dc385d" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x86.zip", + "hash": "e4e95b50ef7f86542f4af21447b2f6cab73c9479d532fe225cd80b53b14382b21dc6dd8da1cc7a2ec74b79eca9e049279708750880cb3bee9b616a97bb8294aa" + } + ] + } + ], + "aspnetcore-runtime": { + "version": "10.0.0-preview.7.25380.108", + "version-display": "10.0.0-preview.7", + "version-aspnetcoremodule": [], + "vs-version": "", + "files": [ + { + "name": "aspnetcore-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "957c236b2ded4ac9367e97ab42cc63a36f0f7b2758050039e7640dfda3824e5a65ebf2d30762fc76222a81d194a49e7ddeb899714a37bc28db6708d8d5b182ed" + }, + { + "name": "aspnetcore-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "81358ed46adffd1a4e2e095e3d23d67d1d289a6c4c50ab20e1e71161b2823c8c44dd5a6c241ac9b3fcd4a2af518dbffbccdb7b3acd07a42af9ff24c5fd62c6a3" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "b89d1b9ca5a9872cf367774a2ca5152a42ed86decc18c593b104883463ce5cfaca6a69f917449a02b4d25ea4158f822a36ac0d655c538c184e47ad751186ecdb" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "7006341c95a51910a6ee02d581e9a41d76464a7efbed0ad779d0e64fc0d77c42bbd233537f57d76f6f0fdb387f6e25592ba53362670a5e6efed61a374e421cec" + }, + { + "name": "aspnetcore-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "c117f44821cd6c55a76bb9ebfc7465606d38ac89c810ee224b2b3a0ff4f5abf2dddbbb1956839e672aeba4f951df0b5ac7f1935d2a90b6d4dcddc11ea7c33b51" + }, + { + "name": "aspnetcore-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "f689f386f7fa56b9b53bd7d510abecf2b9c22358fb29367846c23fbba7b0a61a47d86dbceef96b73a728af076e55c346838497402e0cd80b8695d9dc1ea3c2b9" + }, + { + "name": "aspnetcore-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "0f98b27b813a7ad2eb5a408e7bdb1fffdedf85e011b04985e90095de2916daa4c34214ac3cf9a066f49b3e7ee09d56d73f9e9a1858c71eff8900cc4145fd3255" + }, + { + "name": "aspnetcore-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "1502e2a5a4d86a1430840d931a49d15ffd3b64465e57d21d714448b71969cfbce65382ef828260f1696dd46c409f3c03f6b8ae7a72e51567b444ca10ba8adea0" + }, + { + "name": "aspnetcore-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-arm64.exe", + "hash": "ff0754f666261f9990ea7cabef99982f6510a2aa49a0ec349315cd456961b5d77a4ed38bea5068a5040898f2520f0a52dce1c4c6049874a3f2efbb4f5c862f79" + }, + { + "name": "aspnetcore-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "4591c6ae7d1f9a98b83cbf9be2dadc82bd26551c536da559f14dfcdce610884cf2a0e5bf209bfafab98fce545302e0497f92cc8b6492bf1182aa771dd977d40f" + }, + { + "name": "aspnetcore-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-x64.exe", + "hash": "a6c0f170f649eca7f3bb87c9206a626fe88e2b4433b48f8324fbdd5e488f30f7f6e4511baf9e68a4aad7bd8bf400a11fc4b621ba44c767e1d145dffb4bf40bc0" + }, + { + "name": "aspnetcore-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "65ff03441f22093aef7f6656a921be15b3033b0275876093dc83c7ab531b18b6253599850f9d1a072c5b0e18efad8f9cb12b6ab9090e584fe2b0d2e4c0dcc687" + }, + { + "name": "aspnetcore-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-x86.exe", + "hash": "747475e25487900b801c69befd36db795011c7650787f2208f6d4d5fe08de934dace9fca7c757b59200b0fca5b47f5788a916928e743fb27682c5a1326b3a51f" + }, + { + "name": "aspnetcore-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "8f17caecbdc2998e82d6139c53d7ed704edf1c3a7760723bece3e7e1a0bd83a557867dd6f2d64fa16ac1762eb869e2f9d5f6ba026cf2ee25ef179b8fb15786c0" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "91f6f9b4aaf684b0f77d5f6fae0d8b1f0c58050d93acc17a850679ffe1b37cbf759397d9ea85e582678844dcde23d8eae7b749c2048ac97695861180c58e30d8" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "becb23fb61e649700dfb904d888ce059075cb209911d99fedc62ed2c4c385c8c923737e9a67413b9f18e78959c23a423663808626a0388ac94c937b5f2dff95d" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "f60b45eeddd3d56027fc0a80827609d9c629399fe98e80202f4c516a993496f97bd437b76bd035ac9a54d46c2de59cca29da0d53d25ff8e039f81740edea0ad0" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "e9bdf9a49812016deed77ca260b9885382ed5f316e39d0fb436822f4acb3e03a96522f2cb5802de1f005fd2ffb6e4fbefc8e648567d854a4de35faa66644e546" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "a0308e347adc280cf4fdba2c41479ff400a70aa97bbc51375ce94d4a3ff008fb59d9296447d0f8b10ec9bb63ab548daa5253f105c46819c72dcff42ebcbd7a05" + }, + { + "name": "aspnetcore-runtime-composite-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "8bf3330a819b7cffcbe4a50a01292b8aef27744053c582a3ce49e719f61b656631424e021eb4153213b083eeef119d35878fc5b3567837b9dbe8d3c3e096b7e7" + }, + { + "name": "aspnetcore-runtime-composite-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "e3d8eadc77b19b11ad2e73f70611c8fd3176e40d7a450eb24d3900b7c5534517ce02b90f1151dc39cbbf5443973e755cbcd7ec54a0085895edfd34cb7462c15b" + }, + { + "name": "aspnetcore-runtime-composite-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "c5f33a052cb5974d918325c59080e5ba83805b71fb14834fbaaac08bc4f5f0132f990c5e2d6138795626af03f654bfec9ea8bb6682c0284cbe13d282d7e8670b" + }, + { + "name": "aspnetcore-runtime-composite-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "0f97fcba1b776f40fbd5e143bd133525e72dd0681904caeeba787a84ce7ddd663772ddcc17ad9b18864594add81412c67aece328a32d08c4202f017cd1132e33" + }, + { + "name": "aspnetcore-runtime-composite-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "43600b61621fac1b28f71f2351dde3f8c4a21aef83780d68e48431a9f5fdb421e3aabd1e1daa2ef87f11c2948fb3e3dbfb089ce69392e610e2fb6a22ee6b4e92" + }, + { + "name": "aspnetcore-runtime-composite-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "8a8c1d59b68b14c11951f6b13586cf45fa6b9fd710399ec4d60d9ab5199080b278a0bb753b4218612f9eec145ce457206ab3b3415d55e3e8684dfc114225d779" + }, + { + "name": "aspnetcore-targeting-pack-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "7c6bc501bcabc772eabfc67657fe2d15f9e791bd0d35f4203c9ec33224f61542e507a760940d68780dcfa3812af6412f1c33c0078c41744c278412770e0b3885" + }, + { + "name": "aspnetcore-targeting-pack-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "3ce7319bddd29c12ac3873454aee6d7785b8745dd971541756f43a5a689c33b671563e8e3bef09b9a04a8ba29f710f08697c85546e20a65eea303f3fb1f67621" + }, + { + "name": "aspnetcore-targeting-pack-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "0b9eefed4c325c55864bdbc35dba99031c0afd760e993675b906f978d03f9ebfc04ef882aa75d2561f16838401f679247566b184c80a2ee9c52ac85ac38e7d37" + }, + { + "name": "aspnetcore-targeting-pack-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "936ff1ea380acf08a082939ad1868d39de56de241f10eda333ac898c90da5ef1a2d00a4a0791a34968da5173ed418e433ed46181e7e75176f38e9d78e691098f" + }, + { + "name": "aspnetcore-targeting-pack-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "c45cd04247953debebbe05ee80be301e4f08cbcc9507f3dbbecc7ecf5dcfccfc41e4fd14f63370efca7b3c929386bbdb1950cea69e8058c46f2b1fecb7f14ce2" + }, + { + "name": "aspnetcore-targeting-pack-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "dc01594312f6af1c0fb3a5442f17d2360275eeb6e4bc4fff56fb045aae3c152c6cd0bbf586fd0f436a4696e4221155423df23d242088e91f8266e8107e08d5db" + }, + { + "name": "aspnetcore-targeting-pack-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "e6236d0cd3d6d710f88bbf88922f10c8ac707dbcba5f9c30109ff747292ffb7462eeb40116dc34ff91f8472f0b3de8456b3c7fed00c638c6de8b6045e637df95" + }, + { + "name": "aspnetcore-targeting-pack-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "79945b4f07a337abc082fb0decf836d7cc89aa7f1cb45e356681d24891aeb33e5e1f2884c61645a8bbc76fa6fbfa351df5c6519ac5280bf97cf7cd38734cfcfa" + }, + { + "name": "aspnetcore-targeting-pack-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "e31a1bc8a4d503cbf8395d8eb16ef7b08532528562854167932c5ef20c79dc88e87c0e409c58395d2fec8c8f4b7f6ca463cfbd3e4d1f833711e557c359ef6325" + }, + { + "name": "aspnetcore-targeting-pack-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "216e89ff5fa4f6db8a0437711b74ff3241f622f904d2b230e959b0d999199d0d17e022dddfaae1fe89fb697534e781f9fda5862f90e93935311388698fc2f5b8" + }, + { + "name": "aspnetcore-targeting-pack-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "c0a1e208550444848746edab69119592f02a75473cbf0688f4385c41cb9003c7236ecc878fc873b121831e61d34daedeb3e8bb75fd32ce561649432ccff38d57" + }, + { + "name": "dotnet-hosting-win.exe", + "rid": "", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/dotnet-hosting-10.0.0-preview.7.25380.108-win.exe", + "hash": "af611b874dfee24d1ea3d3a017197142de2b1403d3c28977fd9e99070485fde1396346e1841f8a43fb6a3fde9b794960cd7bc587e5b7881b92a49f3555cead4a", + "akams": "https://aka.ms/dotnetcore-10-0-windowshosting" + } + ] + }, + "windowsdesktop": { + "version": "10.0.0-preview.7.25380.108", + "version-display": "10.0.0-preview.7", + "files": [ + { + "name": "windowsdesktop-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-arm64.exe", + "hash": "f51f2af41a5439881325c91c704a1168f362d9d9b941cd4b886f4c6fbe990475645e4cb35ca51aa3b5ddfb4d8b38f043438efdc729e7f7cc4c487acc6130df81" + }, + { + "name": "windowsdesktop-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "221d531a3ec206890d53653e72fab90382bbe5e276011dc48c4df1d9305315e23e739eb6086dfe8635a70aca9348ee958b732d9f48534fdd9d115e31dc64b39e" + }, + { + "name": "windowsdesktop-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-x64.exe", + "hash": "04fa7bb4fcb12b2af615587d86dcc1ba63b4c34776d08d0d293ad1118d39a929b03a6d9d0aab1d9276c5a6af70528441cc89737d21c99a7302c15fa9a93bbbd7" + }, + { + "name": "windowsdesktop-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "7ce1cfbd1de6d0ea7c53ddf05dbdbe6ebdc14bd52929e05244539d5d62fcc80c079f5aae21e455581e1ed9ed8043645ab7c6cf944f69424c22cfa12ec722e2b6" + }, + { + "name": "windowsdesktop-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-x86.exe", + "hash": "6d0914c46d926427a191f1f597e07c91437dd6f87e2d8929bd6b06865e28dfc54a0e47fdfcd0e16d74b046208d453b8376f825f1557033b21c439b7c59ebd048" + }, + { + "name": "windowsdesktop-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "d09b3c3067a3bf018c037df7c45fc72ed14f270b66d515b165902c21c36f2e4e109a69fdc33a108aa5da3dcf74736bd6a2c3535628d71d0c4428d4f32be92b5d" + } + ] + } + }, { "release-date": "2025-07-15", "release-version": "10.0.0-preview.6", From 593c6cf7c9ae5b371f5a95af36a0e37883d126c0 Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:45:33 -0700 Subject: [PATCH 23/32] Update install-linux.md --- release-notes/10.0/install-linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release-notes/10.0/install-linux.md b/release-notes/10.0/install-linux.md index 108f4cca2c..7dff9208eb 100644 --- a/release-notes/10.0/install-linux.md +++ b/release-notes/10.0/install-linux.md @@ -30,14 +30,14 @@ You can install .NET with a binary archive. This option is required if you want 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://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.6.25358.103/dotnet-sdk-10.0.100-preview.6.25358.103-linux-x64.tar.gz +~# curl -Lo dotnet.tar.gz https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-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.6.25358.103 +10.0.100-preview.7.25380.108 ``` 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. From 0f1e414350644d9e0823eca63846ef9693b1e291 Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:45:58 -0700 Subject: [PATCH 24/32] Update install-macos.md --- release-notes/10.0/install-macos.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release-notes/10.0/install-macos.md b/release-notes/10.0/install-macos.md index dc7fa6affe..38fe51622a 100644 --- a/release-notes/10.0/install-macos.md +++ b/release-notes/10.0/install-macos.md @@ -34,14 +34,14 @@ You can install .NET with a binary archive. This option is required if you want 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://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.6.25358.103/dotnet-sdk-10.0.100-preview.6.25358.103-osx-x64.tar.gz +~# curl -Lo dotnet.tar.gz https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-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.6.25358.103 +10.0.100-preview.7.25380.108 ``` 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. From a84d25358d96871980887e3ff6b77718eba23c13 Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:46:24 -0700 Subject: [PATCH 25/32] Update install-windows.md --- release-notes/10.0/install-windows.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release-notes/10.0/install-windows.md b/release-notes/10.0/install-windows.md index 9f8afe90ae..314c2fc594 100644 --- a/release-notes/10.0/install-windows.md +++ b/release-notes/10.0/install-windows.md @@ -50,13 +50,13 @@ You can install .NET with a binary archive. This option is required if you want 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://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.6.25358.103/dotnet-sdk-10.0.100-preview.6.25358.103-win-x64.exe +C:\>curl -Lo dotnet.zip https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-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.6.25358.103 +10.0.100-preview.7.25380.108 ``` 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. From 5d5ceed8602ccd1889fcdfb84972eba1de0acf56 Mon Sep 17 00:00:00 2001 From: victorisr Date: Tue, 12 Aug 2025 09:47:55 -0700 Subject: [PATCH 26/32] Create release.json --- .../10.0/preview/preview7/release.json | 708 ++++++++++++++++++ 1 file changed, 708 insertions(+) create mode 100644 release-notes/10.0/preview/preview7/release.json diff --git a/release-notes/10.0/preview/preview7/release.json b/release-notes/10.0/preview/preview7/release.json new file mode 100644 index 0000000000..b8bd27337c --- /dev/null +++ b/release-notes/10.0/preview/preview7/release.json @@ -0,0 +1,708 @@ +{ + "channel-version": "10.0", + "latest-release": "10.0.0-preview.7", + "latest-release-date": "2025-08-12", + "latest-runtime": "10.0.0-preview.7.25380.108", + "latest-sdk": "10.0.100-preview.7.25380.108", + "support-phase": "preview", + "release-type": "lts", + "lifecycle-policy": "https://aka.ms/dotnetcoresupport", + "releases": [ + { + "release-date": "2025-08-12", + "release-version": "10.0.0-preview.7", + "security": false, + "cve-list": [], + "release-notes": "https://github.com/dotnet/core/blob/main/release-notes/10.0/preview/preview7/10.0.0-preview.7.md", + "runtime": { + "version": "10.0.0-preview.7.25380.108", + "version-display": "10.0.0-preview.7", + "vs-version": "", + "vs-mac-version": "", + "files": [ + { + "name": "dotnet-apphost-pack-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "54b4c6a175b6165351216afb9aa1416e911549cd9bf6b72a2714321deb139453a838b57f2b567c93e2471a449882ad1bc0db40d273537675e58d4b3431bdfc12" + }, + { + "name": "dotnet-apphost-pack-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "3fb619a47a8f9595d7210de60e159da03f732fa2200f5aa9a0edb9ae269e412c61a04016d20f8fb43f6fe4c29305566f15202e59c4322667b7f417cb4f389c31" + }, + { + "name": "dotnet-apphost-pack-linux-bionic-arm64.tar.gz", + "rid": "linux-bionic-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-bionic-arm64.tar.gz", + "hash": "7183951a0c82804a057acd5cbbed199d3065f8ec02888de04dd6bcda43656e05740735acbb3b388162723e24b2e0d4c39cd74957b8a20f8ff4e19447cdd0f952" + }, + { + "name": "dotnet-apphost-pack-linux-bionic-x64.tar.gz", + "rid": "linux-bionic-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-bionic-x64.tar.gz", + "hash": "183d68c3f6512f2ab39830dc7ae95600ce8ed85ef6e6037af0f32d502e70d82d7f25de46835217007a5540d965b9bbfa782d8cc6c611a1065d99613347310dc0" + }, + { + "name": "dotnet-apphost-pack-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "56fe7eab141c6e1c550ecd3e46cf9e6f0e5e554ebc3aa749cd4ef1154eea19cfef276f25afea79435fc210310df47505cb920091b7f7b6f8084ad9a27d26f588" + }, + { + "name": "dotnet-apphost-pack-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "185dd3b0252e003a0ae9491b03a4bbe96ba3b55c22e4e32b5fc71c4befbb3985fc599d272837c4ef19420d8c267a92b927cfabfa32eb99f010df5a950d669437" + }, + { + "name": "dotnet-apphost-pack-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "bb34f05b8ae4cd853019994776912b6bb2495f2daa0b4b223cc3a9be69177a1a9828526d720c62a3210465432d2118b7d1656781ec6ca611aa7c37858837c6d9" + }, + { + "name": "dotnet-apphost-pack-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "dda8eeb6888b741497739e4c594052226388767059d122b5f741154453768d7f061068e298933fabd160a22840f2eff58be2282e73793d353da934b0b0f0d98d" + }, + { + "name": "dotnet-apphost-pack-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "eb40989973ace2a81466b4318f0a2df238dd51d6e529d4821cc7114ffb0bde94aba30b99d76f1f5cfdedb7b196e79091e5d62b95411fb9b7a9ff8b14cc2edc79" + }, + { + "name": "dotnet-apphost-pack-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "1cbf0d5a38a8c6ab51728ed42af0eed6f3df33063b7934f518d19b9c5dbdb53265d6e0e1325957e50fe1b5cbc6862982046cc2cbb47498607054ad4caf062c3d" + }, + { + "name": "dotnet-apphost-pack-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "d69896cb005f8d17e830c81af19ab506934b9f9122005db25bf7bba8008398c6229c3ffc9d813c58c5dccfe4c30bd2a9a5fb40eaafe3bd02ab9f804fff5b5ed8" + }, + { + "name": "dotnet-apphost-pack-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "c28b16a68f6af4ba65f87b19f7d6985aa67d7f64c45040ff70ee642cd6d0acda9d3161e1db6dad44f3128fde11aee08507b9d81d15b5a8edff89228a57c97cfe" + }, + { + "name": "dotnet-apphost-pack-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-apphost-pack-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "7e6453ff6e53551ed1a3a7cab2b5641ac9399302a71b69e696d6ecbc2ae1656179a079f4359390044f3905491c33202dd65eac1e2f1fbee756e66647c30148ce" + }, + { + "name": "dotnet-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "a32691868bc61531a32fa3bbf11341646ac51416ac52f680093c577d33b638306a26a0a3279a686a86543e0f2fdcca0e7a07f360817952945dc9b46de29c9709" + }, + { + "name": "dotnet-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "b5301eaae11409bdbf31983bc69937f70dd17b355ef380f4cab317e921e5d66162642cd57d19a14fbba0efc09a76335c6e5f2ee998a60c4ac762cb17251d3840" + }, + { + "name": "dotnet-runtime-linux-bionic-arm64.tar.gz", + "rid": "linux-bionic-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-bionic-arm64.tar.gz", + "hash": "bab9c7b22a41263d76f6c002555e3aa3a3d22476b78145d186823600e14d1e77d1899797b9d4261e29005cf207ed9e5a9d12358beeb14fca2b9d524c2707fb24" + }, + { + "name": "dotnet-runtime-linux-bionic-x64.tar.gz", + "rid": "linux-bionic-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-bionic-x64.tar.gz", + "hash": "d177d37d0e21f9b7e190ceaab26459f4c4f44e7c2eb496cc5af91bfe3633502d89e47c2e6262ab0a61a4219c4d83d690371964b50bbc4dc9796a2e37833c2007" + }, + { + "name": "dotnet-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "6820978d7c737a9ffb3e3f481ac0c3026dc546c1f427396a8309027538b086ef901071e22a2089b778af5e51bc689a4414202cefd96091cd33015b50f7e1ad1c" + }, + { + "name": "dotnet-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "c4902564728b931d23207a231cd4946422afaad1508e918c2127dc8236dcff2a95357410e2f0bad5b2d8719c6414c2092d09380c3ae70151b5920a32bb3387cf" + }, + { + "name": "dotnet-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "c027d4879ce290a13835a256b58adaaaeda176f09882c7a3e36fb0e2293b428eff53e621a478fec45d928f178bdd52e7f4a2b4de9e02d20494c4b9925ccb6406" + }, + { + "name": "dotnet-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "127487209cb3c4a394847cced5a15db8c5b66c93866e88b4a70789ea2c90b41e2993e00d9192d4ba988f33ddbc89a5ca2fe4f19a611d7ed8ad8c3e0a4692c501" + }, + { + "name": "dotnet-runtime-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-osx-arm64.pkg", + "hash": "9bbadf6c5239d82b80326cd09abf90602bb7981018ea210be147937a440838360fcf82d9e69a010c9101ebbfc691f48931c34bc789f3ee77fbd40414deca3a21" + }, + { + "name": "dotnet-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "ef607e73cd97ada3cda31a0cbea556cd60409a2612a94127271b9bf925e12df84cf7b326b0b5eddecd3bace37fd6fa7010d487cddc5c2324745ded96f8bca600" + }, + { + "name": "dotnet-runtime-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-osx-x64.pkg", + "hash": "06d6840d8a0a7db9d4dbb74fc6044d053d9f3795e707417481b3179101cd4279028a89704b467002e0983a1af1bd06ce477233c583de35b4ca5bb540154499d0" + }, + { + "name": "dotnet-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "e24067fdd47c6ff8d308d3673702ba143fdadd50b4a5171af2aab7e80633eee19e66a0b6940bea4aae988a4d391155a35ba78e57760cdddda5af5ebd335b3d10" + }, + { + "name": "dotnet-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-arm64.exe", + "hash": "a6943907fbb8ae9c710a0a9d374894d116c0fc6757f2a7069850a32bc52c92851403502e05e9097a075815bcb6dd1b12c8c951d9a03be1ee92560512de7b21aa" + }, + { + "name": "dotnet-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "77f346452d57a0b6ca016effdea2e3918244bcb22f5a8e4d996c558964613d4047a7a6c2d7b49cfd4f595e1b010ba240a75d4d6bf1cfb830948fa9bafd0e6afc" + }, + { + "name": "dotnet-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-x64.exe", + "hash": "eb9bd5f62fa364a81008e192fcac50e32773e31b43e6f00395fd26d6fa01805a776c2168274b1e61e86e6ebc52116b5bd0286ec63127583b0298886c5b13fcfa" + }, + { + "name": "dotnet-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "6cc336587bcf32e3cdfe3cdaf3505575508fe753c5e263dbd95c7bfb6f8e0e30c3e7ca4fded20ddda24805bd8d1204e04b2b8fb78bf1e94c4e58d04f61f4c305" + }, + { + "name": "dotnet-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-x86.exe", + "hash": "a1f2cd7de077bebd7692f413b45cb06d194606da22d87124894973ee5bdd780d9d4d8f87fcc07b3ffdf8e9900025544ab5c7eb89c1635cb98eb4d04ddd7529cb" + }, + { + "name": "dotnet-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Runtime/10.0.0-preview.7.25380.108/dotnet-runtime-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "9362a5f247f342582da837fde1a3fe227ab9b50c741502fe45ad2070827e90fbf88644294d99630c939d81b143bbca88c0ee961b924f829bf20feaa0d47fe7ef" + } + ] + }, + "sdk": { + "version": "10.0.100-preview.7.25380.108", + "version-display": "10.0.100-preview.7", + "runtime-version": "10.0.0-preview.7.25380.108", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "", + "vs-mac-support": "", + "csharp-version": "13.0", + "fsharp-version": "9.0", + "vb-version": "17.13", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-arm.tar.gz", + "hash": "9279bfc306cf53fdc02673c68ebc06818b26fb05ee904ff315e8ff528a8d58b5342a86642233a4a67222f507b60110b8218492c7b97971bee78fb10a15f8aee8" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "a81889cf42cecf616a7685cab17508694cee83e76a9619c64e89afaff4d382668ea4c7edfdeb4453a0c13dfceeac866ea3d0fe05f3df124638a4ca58b4fda725" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "0fae7f41d67983923419632aa1cf895bd2bed286812dccac58b524ae0c6b801bb1855509d6df4bf847e4c40c79965df5cf606bc07f22578f49cc0a3eff57448d" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "cc88dcc54d906dd212f4c383de07d34947cc4b6459240b5fc13a9e8b6e5d7d482bca67357178b14195057ef883c7e60e4ffd80aef484c98a973987fe4993c1a3" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "85ca6e728465581971af358bedd2640c00c9d75c49cac1fa9b3de996b40a13e95f35b7573defaefebdfc674c478e8b579f81a1030be3f160b6720b31fdfd68a1" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-x64.tar.gz", + "hash": "28d03c2da411e8161bfa37148f35ff622eaa2341adcd729a7b523f74aa21e8f7f65019da10d286d67858d19ff60082380b87436df9bcce27147b4fdb21286fb2" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-arm64.pkg", + "hash": "8b2582b14502670403c56a4aea6362422c627ab26249f5df99c486ff6e9735a37056685b2cd9a01f3670c790cbea2975c1966df529a67d7278a078dde222ed9b" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "788fdeed5df50049bcfe1370059cdfa743390a42d9bf52c745563eaac44bf54a954aaca356364bab6b5b108b1b6d9e0d6cf27c253d2e62b0644004669f8197c7" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-x64.pkg", + "hash": "0700a05cbd7da683c02a9438d6cd11326c6f32e88fce49196641ad84381d7c675065477b26c409b20be0860e2429252135642587021e6fcf636bfcfe4563ab65" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-x64.tar.gz", + "hash": "fc3934725b09247325ee10e56819616722a630f4814bb93c43b60b2edbd32ee23cddeb0045d6400808b840d050ed0dc4b5bcf95a90de1b932936b62356e1ea55" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-arm64.exe", + "hash": "a019d16df4404f33b200abd5c24cb2b5cc0a81174d795b6b64ceb165afe5fe2ef8b460267db42e12ed22486adec5294ba0c3915b37f721faa2f452cbdb605718" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-arm64.zip", + "hash": "7b4ecb1646191e335b3e8fed6a438aafd347896f537888af2038034e1d3c5d59aca9e84a7eea7ca62269560e6407757a5d16d6021b9f5026eb60e311ed7a793d" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x64.exe", + "hash": "5101cb87b0acd2704badc044c3874be02b6338fc21de059c22c695491aa58b5e3e91bea9ba068dfd5c1ebe8523ec843d3fd991628dbafcaf7b3e36ab2b0bc9ae" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x64.zip", + "hash": "c97a06d6859a9abb054a846f3f9b7f4b366fce26d25f411c0f793ca4777bd8f641214aaafb9a84f278b6d78f362e34e4167be460968145f4d2a764de777afdcc" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x86.exe", + "hash": "c9d6bd67b761fc582ceb28aa5bf87519f226f249366c5043c554aae57cda12c805b4c099c0e66ea9dace3df0244f4949e49112deebb17a8562ade07fd5dc385d" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x86.zip", + "hash": "e4e95b50ef7f86542f4af21447b2f6cab73c9479d532fe225cd80b53b14382b21dc6dd8da1cc7a2ec74b79eca9e049279708750880cb3bee9b616a97bb8294aa" + } + ] + }, + "sdks": [ + { + "version": "10.0.100-preview.7.25380.108", + "version-display": "10.0.100-preview.7", + "runtime-version": "10.0.0-preview.7.25380.108", + "vs-version": "", + "vs-mac-version": "", + "vs-support": "", + "vs-mac-support": "", + "csharp-version": "13.0", + "fsharp-version": "9.0", + "vb-version": "17.13", + "files": [ + { + "name": "dotnet-sdk-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-arm.tar.gz", + "hash": "9279bfc306cf53fdc02673c68ebc06818b26fb05ee904ff315e8ff528a8d58b5342a86642233a4a67222f507b60110b8218492c7b97971bee78fb10a15f8aee8" + }, + { + "name": "dotnet-sdk-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "a81889cf42cecf616a7685cab17508694cee83e76a9619c64e89afaff4d382668ea4c7edfdeb4453a0c13dfceeac866ea3d0fe05f3df124638a4ca58b4fda725" + }, + { + "name": "dotnet-sdk-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "0fae7f41d67983923419632aa1cf895bd2bed286812dccac58b524ae0c6b801bb1855509d6df4bf847e4c40c79965df5cf606bc07f22578f49cc0a3eff57448d" + }, + { + "name": "dotnet-sdk-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "cc88dcc54d906dd212f4c383de07d34947cc4b6459240b5fc13a9e8b6e5d7d482bca67357178b14195057ef883c7e60e4ffd80aef484c98a973987fe4993c1a3" + }, + { + "name": "dotnet-sdk-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "85ca6e728465581971af358bedd2640c00c9d75c49cac1fa9b3de996b40a13e95f35b7573defaefebdfc674c478e8b579f81a1030be3f160b6720b31fdfd68a1" + }, + { + "name": "dotnet-sdk-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-linux-x64.tar.gz", + "hash": "28d03c2da411e8161bfa37148f35ff622eaa2341adcd729a7b523f74aa21e8f7f65019da10d286d67858d19ff60082380b87436df9bcce27147b4fdb21286fb2" + }, + { + "name": "dotnet-sdk-osx-arm64.pkg", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-arm64.pkg", + "hash": "8b2582b14502670403c56a4aea6362422c627ab26249f5df99c486ff6e9735a37056685b2cd9a01f3670c790cbea2975c1966df529a67d7278a078dde222ed9b" + }, + { + "name": "dotnet-sdk-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "788fdeed5df50049bcfe1370059cdfa743390a42d9bf52c745563eaac44bf54a954aaca356364bab6b5b108b1b6d9e0d6cf27c253d2e62b0644004669f8197c7" + }, + { + "name": "dotnet-sdk-osx-x64.pkg", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-x64.pkg", + "hash": "0700a05cbd7da683c02a9438d6cd11326c6f32e88fce49196641ad84381d7c675065477b26c409b20be0860e2429252135642587021e6fcf636bfcfe4563ab65" + }, + { + "name": "dotnet-sdk-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-osx-x64.tar.gz", + "hash": "fc3934725b09247325ee10e56819616722a630f4814bb93c43b60b2edbd32ee23cddeb0045d6400808b840d050ed0dc4b5bcf95a90de1b932936b62356e1ea55" + }, + { + "name": "dotnet-sdk-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-arm64.exe", + "hash": "a019d16df4404f33b200abd5c24cb2b5cc0a81174d795b6b64ceb165afe5fe2ef8b460267db42e12ed22486adec5294ba0c3915b37f721faa2f452cbdb605718" + }, + { + "name": "dotnet-sdk-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-arm64.zip", + "hash": "7b4ecb1646191e335b3e8fed6a438aafd347896f537888af2038034e1d3c5d59aca9e84a7eea7ca62269560e6407757a5d16d6021b9f5026eb60e311ed7a793d" + }, + { + "name": "dotnet-sdk-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x64.exe", + "hash": "5101cb87b0acd2704badc044c3874be02b6338fc21de059c22c695491aa58b5e3e91bea9ba068dfd5c1ebe8523ec843d3fd991628dbafcaf7b3e36ab2b0bc9ae" + }, + { + "name": "dotnet-sdk-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x64.zip", + "hash": "c97a06d6859a9abb054a846f3f9b7f4b366fce26d25f411c0f793ca4777bd8f641214aaafb9a84f278b6d78f362e34e4167be460968145f4d2a764de777afdcc" + }, + { + "name": "dotnet-sdk-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x86.exe", + "hash": "c9d6bd67b761fc582ceb28aa5bf87519f226f249366c5043c554aae57cda12c805b4c099c0e66ea9dace3df0244f4949e49112deebb17a8562ade07fd5dc385d" + }, + { + "name": "dotnet-sdk-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100-preview.7.25380.108/dotnet-sdk-10.0.100-preview.7.25380.108-win-x86.zip", + "hash": "e4e95b50ef7f86542f4af21447b2f6cab73c9479d532fe225cd80b53b14382b21dc6dd8da1cc7a2ec74b79eca9e049279708750880cb3bee9b616a97bb8294aa" + } + ] + } + ], + "aspnetcore-runtime": { + "version": "10.0.0-preview.7.25380.108", + "version-display": "10.0.0-preview.7", + "version-aspnetcoremodule": [], + "vs-version": "", + "files": [ + { + "name": "aspnetcore-runtime-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "957c236b2ded4ac9367e97ab42cc63a36f0f7b2758050039e7640dfda3824e5a65ebf2d30762fc76222a81d194a49e7ddeb899714a37bc28db6708d8d5b182ed" + }, + { + "name": "aspnetcore-runtime-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "81358ed46adffd1a4e2e095e3d23d67d1d289a6c4c50ab20e1e71161b2823c8c44dd5a6c241ac9b3fcd4a2af518dbffbccdb7b3acd07a42af9ff24c5fd62c6a3" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "b89d1b9ca5a9872cf367774a2ca5152a42ed86decc18c593b104883463ce5cfaca6a69f917449a02b4d25ea4158f822a36ac0d655c538c184e47ad751186ecdb" + }, + { + "name": "aspnetcore-runtime-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "7006341c95a51910a6ee02d581e9a41d76464a7efbed0ad779d0e64fc0d77c42bbd233537f57d76f6f0fdb387f6e25592ba53362670a5e6efed61a374e421cec" + }, + { + "name": "aspnetcore-runtime-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "c117f44821cd6c55a76bb9ebfc7465606d38ac89c810ee224b2b3a0ff4f5abf2dddbbb1956839e672aeba4f951df0b5ac7f1935d2a90b6d4dcddc11ea7c33b51" + }, + { + "name": "aspnetcore-runtime-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "f689f386f7fa56b9b53bd7d510abecf2b9c22358fb29367846c23fbba7b0a61a47d86dbceef96b73a728af076e55c346838497402e0cd80b8695d9dc1ea3c2b9" + }, + { + "name": "aspnetcore-runtime-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "0f98b27b813a7ad2eb5a408e7bdb1fffdedf85e011b04985e90095de2916daa4c34214ac3cf9a066f49b3e7ee09d56d73f9e9a1858c71eff8900cc4145fd3255" + }, + { + "name": "aspnetcore-runtime-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "1502e2a5a4d86a1430840d931a49d15ffd3b64465e57d21d714448b71969cfbce65382ef828260f1696dd46c409f3c03f6b8ae7a72e51567b444ca10ba8adea0" + }, + { + "name": "aspnetcore-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-arm64.exe", + "hash": "ff0754f666261f9990ea7cabef99982f6510a2aa49a0ec349315cd456961b5d77a4ed38bea5068a5040898f2520f0a52dce1c4c6049874a3f2efbb4f5c862f79" + }, + { + "name": "aspnetcore-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "4591c6ae7d1f9a98b83cbf9be2dadc82bd26551c536da559f14dfcdce610884cf2a0e5bf209bfafab98fce545302e0497f92cc8b6492bf1182aa771dd977d40f" + }, + { + "name": "aspnetcore-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-x64.exe", + "hash": "a6c0f170f649eca7f3bb87c9206a626fe88e2b4433b48f8324fbdd5e488f30f7f6e4511baf9e68a4aad7bd8bf400a11fc4b621ba44c767e1d145dffb4bf40bc0" + }, + { + "name": "aspnetcore-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "65ff03441f22093aef7f6656a921be15b3033b0275876093dc83c7ab531b18b6253599850f9d1a072c5b0e18efad8f9cb12b6ab9090e584fe2b0d2e4c0dcc687" + }, + { + "name": "aspnetcore-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-x86.exe", + "hash": "747475e25487900b801c69befd36db795011c7650787f2208f6d4d5fe08de934dace9fca7c757b59200b0fca5b47f5788a916928e743fb27682c5a1326b3a51f" + }, + { + "name": "aspnetcore-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "8f17caecbdc2998e82d6139c53d7ed704edf1c3a7760723bece3e7e1a0bd83a557867dd6f2d64fa16ac1762eb869e2f9d5f6ba026cf2ee25ef179b8fb15786c0" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "91f6f9b4aaf684b0f77d5f6fae0d8b1f0c58050d93acc17a850679ffe1b37cbf759397d9ea85e582678844dcde23d8eae7b749c2048ac97695861180c58e30d8" + }, + { + "name": "aspnetcore-runtime-composite-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "becb23fb61e649700dfb904d888ce059075cb209911d99fedc62ed2c4c385c8c923737e9a67413b9f18e78959c23a423663808626a0388ac94c937b5f2dff95d" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "f60b45eeddd3d56027fc0a80827609d9c629399fe98e80202f4c516a993496f97bd437b76bd035ac9a54d46c2de59cca29da0d53d25ff8e039f81740edea0ad0" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "e9bdf9a49812016deed77ca260b9885382ed5f316e39d0fb436822f4acb3e03a96522f2cb5802de1f005fd2ffb6e4fbefc8e648567d854a4de35faa66644e546" + }, + { + "name": "aspnetcore-runtime-composite-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "a0308e347adc280cf4fdba2c41479ff400a70aa97bbc51375ce94d4a3ff008fb59d9296447d0f8b10ec9bb63ab548daa5253f105c46819c72dcff42ebcbd7a05" + }, + { + "name": "aspnetcore-runtime-composite-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "8bf3330a819b7cffcbe4a50a01292b8aef27744053c582a3ce49e719f61b656631424e021eb4153213b083eeef119d35878fc5b3567837b9dbe8d3c3e096b7e7" + }, + { + "name": "aspnetcore-runtime-composite-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "e3d8eadc77b19b11ad2e73f70611c8fd3176e40d7a450eb24d3900b7c5534517ce02b90f1151dc39cbbf5443973e755cbcd7ec54a0085895edfd34cb7462c15b" + }, + { + "name": "aspnetcore-runtime-composite-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "c5f33a052cb5974d918325c59080e5ba83805b71fb14834fbaaac08bc4f5f0132f990c5e2d6138795626af03f654bfec9ea8bb6682c0284cbe13d282d7e8670b" + }, + { + "name": "aspnetcore-runtime-composite-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "0f97fcba1b776f40fbd5e143bd133525e72dd0681904caeeba787a84ce7ddd663772ddcc17ad9b18864594add81412c67aece328a32d08c4202f017cd1132e33" + }, + { + "name": "aspnetcore-runtime-composite-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "43600b61621fac1b28f71f2351dde3f8c4a21aef83780d68e48431a9f5fdb421e3aabd1e1daa2ef87f11c2948fb3e3dbfb089ce69392e610e2fb6a22ee6b4e92" + }, + { + "name": "aspnetcore-runtime-composite-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-runtime-composite-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "8a8c1d59b68b14c11951f6b13586cf45fa6b9fd710399ec4d60d9ab5199080b278a0bb753b4218612f9eec145ce457206ab3b3415d55e3e8684dfc114225d779" + }, + { + "name": "aspnetcore-targeting-pack-linux-arm.tar.gz", + "rid": "linux-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-arm.tar.gz", + "hash": "7c6bc501bcabc772eabfc67657fe2d15f9e791bd0d35f4203c9ec33224f61542e507a760940d68780dcfa3812af6412f1c33c0078c41744c278412770e0b3885" + }, + { + "name": "aspnetcore-targeting-pack-linux-arm64.tar.gz", + "rid": "linux-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-arm64.tar.gz", + "hash": "3ce7319bddd29c12ac3873454aee6d7785b8745dd971541756f43a5a689c33b671563e8e3bef09b9a04a8ba29f710f08697c85546e20a65eea303f3fb1f67621" + }, + { + "name": "aspnetcore-targeting-pack-linux-musl-arm.tar.gz", + "rid": "linux-musl-arm", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-musl-arm.tar.gz", + "hash": "0b9eefed4c325c55864bdbc35dba99031c0afd760e993675b906f978d03f9ebfc04ef882aa75d2561f16838401f679247566b184c80a2ee9c52ac85ac38e7d37" + }, + { + "name": "aspnetcore-targeting-pack-linux-musl-arm64.tar.gz", + "rid": "linux-musl-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-musl-arm64.tar.gz", + "hash": "936ff1ea380acf08a082939ad1868d39de56de241f10eda333ac898c90da5ef1a2d00a4a0791a34968da5173ed418e433ed46181e7e75176f38e9d78e691098f" + }, + { + "name": "aspnetcore-targeting-pack-linux-musl-x64.tar.gz", + "rid": "linux-musl-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-musl-x64.tar.gz", + "hash": "c45cd04247953debebbe05ee80be301e4f08cbcc9507f3dbbecc7ecf5dcfccfc41e4fd14f63370efca7b3c929386bbdb1950cea69e8058c46f2b1fecb7f14ce2" + }, + { + "name": "aspnetcore-targeting-pack-linux-x64.tar.gz", + "rid": "linux-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-linux-x64.tar.gz", + "hash": "dc01594312f6af1c0fb3a5442f17d2360275eeb6e4bc4fff56fb045aae3c152c6cd0bbf586fd0f436a4696e4221155423df23d242088e91f8266e8107e08d5db" + }, + { + "name": "aspnetcore-targeting-pack-osx-arm64.tar.gz", + "rid": "osx-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-osx-arm64.tar.gz", + "hash": "e6236d0cd3d6d710f88bbf88922f10c8ac707dbcba5f9c30109ff747292ffb7462eeb40116dc34ff91f8472f0b3de8456b3c7fed00c638c6de8b6045e637df95" + }, + { + "name": "aspnetcore-targeting-pack-osx-x64.tar.gz", + "rid": "osx-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-osx-x64.tar.gz", + "hash": "79945b4f07a337abc082fb0decf836d7cc89aa7f1cb45e356681d24891aeb33e5e1f2884c61645a8bbc76fa6fbfa351df5c6519ac5280bf97cf7cd38734cfcfa" + }, + { + "name": "aspnetcore-targeting-pack-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "e31a1bc8a4d503cbf8395d8eb16ef7b08532528562854167932c5ef20c79dc88e87c0e409c58395d2fec8c8f4b7f6ca463cfbd3e4d1f833711e557c359ef6325" + }, + { + "name": "aspnetcore-targeting-pack-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "216e89ff5fa4f6db8a0437711b74ff3241f622f904d2b230e959b0d999199d0d17e022dddfaae1fe89fb697534e781f9fda5862f90e93935311388698fc2f5b8" + }, + { + "name": "aspnetcore-targeting-pack-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/aspnetcore-targeting-pack-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "c0a1e208550444848746edab69119592f02a75473cbf0688f4385c41cb9003c7236ecc878fc873b121831e61d34daedeb3e8bb75fd32ce561649432ccff38d57" + }, + { + "name": "dotnet-hosting-win.exe", + "rid": "", + "url": "https://builds.dotnet.microsoft.com/dotnet/aspnetcore/Runtime/10.0.0-preview.7.25380.108/dotnet-hosting-10.0.0-preview.7.25380.108-win.exe", + "hash": "af611b874dfee24d1ea3d3a017197142de2b1403d3c28977fd9e99070485fde1396346e1841f8a43fb6a3fde9b794960cd7bc587e5b7881b92a49f3555cead4a", + "akams": "https://aka.ms/dotnetcore-10-0-windowshosting" + } + ] + }, + "windowsdesktop": { + "version": "10.0.0-preview.7.25380.108", + "version-display": "10.0.0-preview.7", + "files": [ + { + "name": "windowsdesktop-runtime-win-arm64.exe", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-arm64.exe", + "hash": "f51f2af41a5439881325c91c704a1168f362d9d9b941cd4b886f4c6fbe990475645e4cb35ca51aa3b5ddfb4d8b38f043438efdc729e7f7cc4c487acc6130df81" + }, + { + "name": "windowsdesktop-runtime-win-arm64.zip", + "rid": "win-arm64", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-arm64.zip", + "hash": "221d531a3ec206890d53653e72fab90382bbe5e276011dc48c4df1d9305315e23e739eb6086dfe8635a70aca9348ee958b732d9f48534fdd9d115e31dc64b39e" + }, + { + "name": "windowsdesktop-runtime-win-x64.exe", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-x64.exe", + "hash": "04fa7bb4fcb12b2af615587d86dcc1ba63b4c34776d08d0d293ad1118d39a929b03a6d9d0aab1d9276c5a6af70528441cc89737d21c99a7302c15fa9a93bbbd7" + }, + { + "name": "windowsdesktop-runtime-win-x64.zip", + "rid": "win-x64", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-x64.zip", + "hash": "7ce1cfbd1de6d0ea7c53ddf05dbdbe6ebdc14bd52929e05244539d5d62fcc80c079f5aae21e455581e1ed9ed8043645ab7c6cf944f69424c22cfa12ec722e2b6" + }, + { + "name": "windowsdesktop-runtime-win-x86.exe", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-x86.exe", + "hash": "6d0914c46d926427a191f1f597e07c91437dd6f87e2d8929bd6b06865e28dfc54a0e47fdfcd0e16d74b046208d453b8376f825f1557033b21c439b7c59ebd048" + }, + { + "name": "windowsdesktop-runtime-win-x86.zip", + "rid": "win-x86", + "url": "https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.7.25380.108/windowsdesktop-runtime-10.0.0-preview.7.25380.108-win-x86.zip", + "hash": "d09b3c3067a3bf018c037df7c45fc72ed14f270b66d515b165902c21c36f2e4e109a69fdc33a108aa5da3dcf74736bd6a2c3535628d71d0c4428d4f32be92b5d" + } + ] + } + } + ] +} From be34a0f9cbb51e6b3283b4ebdf50fbfcbb5a1f1b Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 11:06:52 -0700 Subject: [PATCH 27/32] Update markdown files and release notes for Preview 7 --- .github/linters/.markdownlintignore | 1 + .../prompts/createprs-for-preview.prompt.md | 14 ++++++------- .github/prompts/scaffoldpreview.prompt.md | 7 +++---- .../10.0/preview/preview7/aspnetcore.md | 9 ++++---- .../10.0/preview/preview7/libraries.md | 21 ++++++++++--------- .../10.0/preview/preview7/runtime.md | 11 +--------- release-notes/10.0/preview/preview7/sdk.md | 2 +- .../10.0/preview/preview7/winforms.md | 11 ++++++++-- 8 files changed, 37 insertions(+), 39 deletions(-) diff --git a/.github/linters/.markdownlintignore b/.github/linters/.markdownlintignore index 55b022a681..abd6eaa869 100644 --- a/.github/linters/.markdownlintignore +++ b/.github/linters/.markdownlintignore @@ -1,3 +1,4 @@ # Ignore errors from before linting was enabled to allow incremental fixes **/api-diff/** +**/prompts/** diff --git a/.github/prompts/createprs-for-preview.prompt.md b/.github/prompts/createprs-for-preview.prompt.md index e76c2252dd..a877cc5cef 100644 --- a/.github/prompts/createprs-for-preview.prompt.md +++ b/.github/prompts/createprs-for-preview.prompt.md @@ -1,18 +1,15 @@ ---- -mode: agent ---- - +# Create PRs for Preview Go through each folder in release-notes/10.0/preview7 and one at a time i want you do to the following: -1. create a new branch names **dotnet10-p7-** where is the name of the file without the extension. +1. create a new branch names **dotnet10-p7-{name}** where {name} is the name of the file without the extension. 2. modify the file in some simple way by adding a new line at the end of the file with the text "Something about the feature" in it. -3. commit the change with the message "Update for preview 7" where is the name of the file without the extension. +3. commit the change with the message "Update {name} for preview 7" where {name} is the name of the file without the extension. 4. push the branch to the remote repository. -5. create a pull request with the title "Update for preview 7" and the body "Please update the release notes here as needed for Preview 7.\n\n/cc @" where is the name of the file without the extension and is assigned based on the assignment table below. +5. create a pull request with the title "Update {name} for preview 7" and the body "Please update the release notes here as needed for Preview 7.\n\n/cc @{reviewer}" where {name} is the name of the file without the extension and {reviewer} is assigned based on the assignment table below. 6. go back to the dotnet10-p7 branch and repeat the process for the next file. -## Assignment Table (based on Preview 6 patterns): +## Assignment Table (based on Preview 6 patterns) | File | Assignee(s) | Based on Preview 6 PR | |------|-------------|----------------------| @@ -30,6 +27,7 @@ Go through each folder in release-notes/10.0/preview7 and one at a time i want y | wpf.md | @harshit7962 | #9948 | Here are the files you need to do this one at a time for: + - aspnetcore.md - containers.md - csharp.md diff --git a/.github/prompts/scaffoldpreview.prompt.md b/.github/prompts/scaffoldpreview.prompt.md index 5c2735a87e..7b3826afc4 100644 --- a/.github/prompts/scaffoldpreview.prompt.md +++ b/.github/prompts/scaffoldpreview.prompt.md @@ -1,6 +1,5 @@ ---- -mode: agent ---- +# Scaffold Preview + Create a new folder in the releasenotes/10.0/preview folder for preview7. Inside of it duplicate the folder structure and files that are in the preview6 folder and for each of the files use the following template based on the names of the product that the file is in. You can use the previous file as a reference for the content. Ignore the api-diff folder. Ignore the release.json file. Here is a sample of what aspnetcore.md should look like: @@ -22,4 +21,4 @@ ASP.NET Core updates in .NET 10: Something about the feature -`` \ No newline at end of file +``` \ No newline at end of file diff --git a/release-notes/10.0/preview/preview7/aspnetcore.md b/release-notes/10.0/preview/preview7/aspnetcore.md index 4b34ad0897..e050a559a2 100644 --- a/release-notes/10.0/preview/preview7/aspnetcore.md +++ b/release-notes/10.0/preview/preview7/aspnetcore.md @@ -34,7 +34,7 @@ app.UseExceptionHandler(new ExceptionHandlerOptions }); ``` -For more information about this breaking change, see https://github.com/aspnet/Announcements/issues/524. +For more information about this breaking change, see [this announcement](https://github.com/aspnet/Announcements/issues/524). ## Avoid cookie login redirects for known API endpoints @@ -69,7 +69,7 @@ builder.Services.AddAuthentication() }); ``` -For more information about this breaking change, see https://github.com/aspnet/Announcements/issues/525 +For more information about this breaking change, see [this announcement](https://github.com/aspnet/Announcements/issues/525). ## Passkey authentication improvements @@ -124,6 +124,7 @@ To sign in with a passkey, use `SignInManager.PasskeySignInAsync()`: // 'credentialJson' is the JSON-serialized result from `navigator.credentials.get()`. var result = await signInManager.PasskeySignInAsync(credentialJson); ``` + ### Getting started with passkeys **For new applications:** The Blazor Web App project template now includes passkey functionality out of the box. Create a new Blazor app with passkey support using: @@ -148,7 +149,7 @@ The [ASP.NET Core HTTPS development certificate](https://learn.microsoft.com/asp The project templates for *ASP.NET Core Empty* (`web`) and *Blazor Web App* (`blazor`) have been updated with a new option that when specified configures the created project to use the `.dev.localhost` domain name suffix, combining it with the project name to allow the app to be browsed to at an address like `https://myapp.dev.localhost:5036`: -``` +```bash $ dotnet new web -n MyApp --localhost-tld The template "ASP.NET Core Empty" was created successfully. @@ -268,7 +269,7 @@ The Blazor diagnostic metrics have been updated to follow OpenTelemetry naming c | `aspnetcore.components.render_diff` | Split into `aspnetcore.components.render_diff.duration` and `aspnetcore.components.render_diff.size` | | `aspnetcore.components.navigation` | `aspnetcore.components.navigate` | | `aspnetcore.components.event_handler` | `aspnetcore.components.handle_event.duration` | -| `aspnetcore.components.update_parameters` | `aspnetcore.components.update_parameters.duration` +| `aspnetcore.components.update_parameters` | `aspnetcore.components.update_parameters.duration` | ### Validate configured services for Blazor WebAssembly apps on build diff --git a/release-notes/10.0/preview/preview7/libraries.md b/release-notes/10.0/preview/preview7/libraries.md index 9192914020..78485436c5 100644 --- a/release-notes/10.0/preview/preview7/libraries.md +++ b/release-notes/10.0/preview/preview7/libraries.md @@ -5,12 +5,12 @@ Here's a summary of what's new in .NET Libraries in this preview release: - [Launch Windows processes in new process group](#launch-windows-processes-in-new-process-group) - [AES KeyWrap with Padding (IETF RFC 5649)](#aes-keywrap-with-padding-ietf-rfc-5649) - Post-Quantum Cryptography Updates - - [ML-DSA](#ml-dsa) - - [Composite ML-DSA](#composite-ml-dsa) + - [ML-DSA](#ml-dsa) + - [Composite ML-DSA](#composite-ml-dsa) - [PipeReader support for JSON serializer](#pipereader-support-for-json-serializer) - Networking - - [WebSocketStream](#websocketstream) - - [TLS 1.3 for macOS (client)](#tls-13-for-macos-client) + - [WebSocketStream](#websocketstream) + - [TLS 1.3 for macOS (client)](#tls-13-for-macos-client) .NET Libraries updates in .NET 10: @@ -250,7 +250,8 @@ record Chunk(string Message, DateTime Timestamp); ``` Note that all of this is serialized as JSON in the `Pipe` (formatted here for readability): -``` + +```json [ { "Message": "The quick brown fox", @@ -277,11 +278,11 @@ Traditional `WebSocket` APIs are low-level and require significant boilerplate: **WebSocketStream** addresses these pain points by providing a Stream-based abstraction over a WebSocket. This enables seamless integration with existing APIs for reading, writing, and parsing data, whether binary or text, and reduces the need for manual plumbing. -**Common Usage Patterns** +## Common Usage Patterns Here are a few examples of how `WebSocketStream` simplifies typical WebSocket workflows: -**1. Streaming text protocol (e.g., STOMP)** +### 1. Streaming text protocol (e.g., STOMP) ```csharp using Stream transportStream = WebSocketStream.Create( @@ -295,7 +296,7 @@ var line = await transportReader.ReadLineAsync(cancellationToken); // Automatic transportStream.Dispose(); // Automatic closing handshake handling on `Dispose` ``` -**2. Streaming binary protocol (e.g., AMQP)** +### 2. Streaming binary protocol (e.g., AMQP) ```csharp Stream transportStream = WebSocketStream.Create( @@ -309,7 +310,7 @@ transportStream.Dispose(); // `Dispose` automatically handles closing handshake ``` -**3. Reading a single message as a stream (e.g., JSON deserialization)** +### 3. Reading a single message as a stream (e.g., JSON deserialization) ```csharp using Stream messageStream = WebSocketStream.CreateReadableMessageStream(connectedWebSocket, WebSocketMessageType.Text); @@ -317,7 +318,7 @@ using Stream messageStream = WebSocketStream.CreateReadableMessageStream(connect var appMessage = await JsonSerializer.DeserializeAsync(messageStream); ``` -**4. Writing a single message as a stream (e.g., binary serialization)** +### 4. Writing a single message as a stream (e.g., binary serialization) ```csharp public async Task SendMessageAsync(AppMessage message, CancellationToken cancellationToken) diff --git a/release-notes/10.0/preview/preview7/runtime.md b/release-notes/10.0/preview/preview7/runtime.md index 995a5f7f3c..71d6732c67 100644 --- a/release-notes/10.0/preview/preview7/runtime.md +++ b/release-notes/10.0/preview/preview7/runtime.md @@ -1,16 +1,7 @@ # .NET Runtime in .NET 10 Preview 7 - Release Notes -Here's a summary of what's new in the .NET Runtime in this preview release: - -- [Feature](#feature) +This preview release does not contain new runtime features. .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 - -Something about the feature -# Runtime updates in .NET 10 Preview 7 - Release Notes - -This preview release does not contain new runtime features. diff --git a/release-notes/10.0/preview/preview7/sdk.md b/release-notes/10.0/preview/preview7/sdk.md index 30305e54e0..39c2a287f7 100644 --- a/release-notes/10.0/preview/preview7/sdk.md +++ b/release-notes/10.0/preview/preview7/sdk.md @@ -8,7 +8,7 @@ Here's a summary of what's new in the .NET SDK in this preview release: - [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation -## Use the `any` RuntimeIdentifier with platform-specific .NET Tools +## Use the `any` RuntimeIdentifier with platform-specific .NET Tools {#any-rid-in-multi-rid-tools} The [platform-specific .NET Tools](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/sdk#platform-specific-net-tools) feature released in preview 6 is great for making sure your tools are optimized for specific platforms that you target ahead-of-time. However, there are times where you won't know diff --git a/release-notes/10.0/preview/preview7/winforms.md b/release-notes/10.0/preview/preview7/winforms.md index 2757c0c659..a34ac1e6c6 100644 --- a/release-notes/10.0/preview/preview7/winforms.md +++ b/release-notes/10.0/preview/preview7/winforms.md @@ -1,10 +1,17 @@ -# Windows Forms in .NET 10 Preview 7 - Release Notes +# WindowsWe've alsWe've also improved the rendering of special buttons within the PropertyGrid for dark mode. Previously, the ellipsis button used to open an editor and the drop-down button for ComboBox-type editors were not rendering well in dark mode. Now, these elements have dedicated renderers ensuring they appear consistently and at the same quality as the rest of the UI in dark mode. + +Everything mentioned above pertains specifically to dark mode improvements in Preview 7. Other functionalities remain unchanged in this release.ddressed the RichTextBox background issue in dark mode. Previously, a disabled RichTextBox would show a white background. Now it correctly displays the dark mode background. However, there's a known limitation: if the RichTextBox has formatted content, only the first few visible lines will appear correctly, and the formatting might not fully apply in the disabled state. + +As a temporary workaround, if maintaining full formatting in a disabled RichTextBox is essential, we recommend setting it to read-only and manually disabling selections. This helps achieve a better preview until a more permanent fix is available. Note that this limitation is due to the underlying RichTextBox control in the common controls library, and a full fix may require a future version update. + +## PropertyGrid Dark Mode Enhancementss in .NET 10 Preview 7 - Release Notes Here's a summary of what's new in Windows Forms in this preview release: ## ComboBox Dark Mode Rendering Fix + In this update, we've resolved an issue where a disabled ComboBox displayed a white background instead of the appropriate dark mode color scheme. Now, regardless of whether the ComboBox is in editable, list, or simple mode, its constituent controls will correctly render with the proper dark mode background when disabled. - + ## RichTextBox Dark Mode Improvement and Known Limitation We’ve also addressed the RichTextBox background issue in dark mode. Previously, a disabled RichTextBox would show a white background. Now it correctly displays the dark mode background. However, there's a known limitation: if the RichTextBox has formatted content, only the first few visible lines will appear correctly, and the formatting might not fully apply in the disabled state. From b1a99213f7e3797e099a38a6d256ba4b028d9633 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 11:38:33 -0700 Subject: [PATCH 28/32] Update release notes for Preview 7: add missing WPF entry, fix formatting in ASP.NET Core, SDK, and Windows Forms notes --- .github/prompts/createprs-for-preview.prompt.md | 2 +- .github/prompts/scaffoldpreview.prompt.md | 2 +- release-notes/10.0/preview/preview7/aspnetcore.md | 1 + release-notes/10.0/preview/preview7/sdk.md | 2 +- release-notes/10.0/preview/preview7/winforms.md | 15 ++++++++------- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/prompts/createprs-for-preview.prompt.md b/.github/prompts/createprs-for-preview.prompt.md index a877cc5cef..836511f9dd 100644 --- a/.github/prompts/createprs-for-preview.prompt.md +++ b/.github/prompts/createprs-for-preview.prompt.md @@ -39,4 +39,4 @@ Here are the files you need to do this one at a time for: - sdk.md - visualbasic.md - winforms.md -- wpf.md \ No newline at end of file +- wpf.md diff --git a/.github/prompts/scaffoldpreview.prompt.md b/.github/prompts/scaffoldpreview.prompt.md index 7b3826afc4..387693e2b9 100644 --- a/.github/prompts/scaffoldpreview.prompt.md +++ b/.github/prompts/scaffoldpreview.prompt.md @@ -21,4 +21,4 @@ ASP.NET Core updates in .NET 10: Something about the feature -``` \ No newline at end of file +``` diff --git a/release-notes/10.0/preview/preview7/aspnetcore.md b/release-notes/10.0/preview/preview7/aspnetcore.md index e050a559a2..b9d31c9e92 100644 --- a/release-notes/10.0/preview/preview7/aspnetcore.md +++ b/release-notes/10.0/preview/preview7/aspnetcore.md @@ -120,6 +120,7 @@ else { /* ... */ } ``` To sign in with a passkey, use `SignInManager.PasskeySignInAsync()`: + ```csharp // 'credentialJson' is the JSON-serialized result from `navigator.credentials.get()`. var result = await signInManager.PasskeySignInAsync(credentialJson); diff --git a/release-notes/10.0/preview/preview7/sdk.md b/release-notes/10.0/preview/preview7/sdk.md index 39c2a287f7..8b7f29014c 100644 --- a/release-notes/10.0/preview/preview7/sdk.md +++ b/release-notes/10.0/preview/preview7/sdk.md @@ -33,4 +33,4 @@ platform-specific .NET Tools work this way, you only need to add one thing to yo This RuntimeIdentifier is at the 'root' of our platform-compatibility checking, and since it declares support for, well, _any_ platform, the tool that we package for you will be the most compatible kind of tool - a framework-dependent, platform-agnostic .NET dll, which requires a compatible .NET Runtime in order to execute. When you perform a `dotnet pack` to create your tool, you'll see a new package for the `any` RuntimeIdentifier appear alongside the other platform-specific packages and the top-level manifest package. -The eagle-eyed among you will note that this is the exact same kind of tool that you would make in .NET 9 and earlier, but now it fits into the overall goal of enabling platform-specific .NET Tools! \ No newline at end of file +The eagle-eyed among you will note that this is the exact same kind of tool that you would make in .NET 9 and earlier, but now it fits into the overall goal of enabling platform-specific .NET Tools! diff --git a/release-notes/10.0/preview/preview7/winforms.md b/release-notes/10.0/preview/preview7/winforms.md index a34ac1e6c6..e21d422059 100644 --- a/release-notes/10.0/preview/preview7/winforms.md +++ b/release-notes/10.0/preview/preview7/winforms.md @@ -1,17 +1,18 @@ -# WindowsWe've alsWe've also improved the rendering of special buttons within the PropertyGrid for dark mode. Previously, the ellipsis button used to open an editor and the drop-down button for ComboBox-type editors were not rendering well in dark mode. Now, these elements have dedicated renderers ensuring they appear consistently and at the same quality as the rest of the UI in dark mode. +# Windows Forms in .NET 10 Preview 7 - Release Notes -Everything mentioned above pertains specifically to dark mode improvements in Preview 7. Other functionalities remain unchanged in this release.ddressed the RichTextBox background issue in dark mode. Previously, a disabled RichTextBox would show a white background. Now it correctly displays the dark mode background. However, there's a known limitation: if the RichTextBox has formatted content, only the first few visible lines will appear correctly, and the formatting might not fully apply in the disabled state. +Here's a summary of what's new in Windows Forms in this preview release: -As a temporary workaround, if maintaining full formatting in a disabled RichTextBox is essential, we recommend setting it to read-only and manually disabling selections. This helps achieve a better preview until a more permanent fix is available. Note that this limitation is due to the underlying RichTextBox control in the common controls library, and a full fix may require a future version update. +- [ComboBox Dark Mode Rendering Fix](#combobox-dark-mode-rendering-fix) +- [RichTextBox Dark Mode Improvement and Known Limitation](#richtextbox-dark-mode-improvement-and-known-limitation) +- [PropertyGrid Dark Mode Enhancements](#propertygrid-dark-mode-enhancements) -## PropertyGrid Dark Mode Enhancementss in .NET 10 Preview 7 - Release Notes +Windows Forms updates in .NET 10: -Here's a summary of what's new in Windows Forms in this preview release: +- [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/) documentation ## ComboBox Dark Mode Rendering Fix - In this update, we've resolved an issue where a disabled ComboBox displayed a white background instead of the appropriate dark mode color scheme. Now, regardless of whether the ComboBox is in editable, list, or simple mode, its constituent controls will correctly render with the proper dark mode background when disabled. - + ## RichTextBox Dark Mode Improvement and Known Limitation We’ve also addressed the RichTextBox background issue in dark mode. Previously, a disabled RichTextBox would show a white background. Now it correctly displays the dark mode background. However, there's a known limitation: if the RichTextBox has formatted content, only the first few visible lines will appear correctly, and the formatting might not fully apply in the disabled state. From de4915c5d8cf9226f1e695d68ea0d1debb952862 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 11:47:25 -0700 Subject: [PATCH 29/32] fix winforms --- release-notes/10.0/preview/preview7/winforms.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/release-notes/10.0/preview/preview7/winforms.md b/release-notes/10.0/preview/preview7/winforms.md index e21d422059..35b44b2ac9 100644 --- a/release-notes/10.0/preview/preview7/winforms.md +++ b/release-notes/10.0/preview/preview7/winforms.md @@ -11,14 +11,17 @@ Windows Forms updates in .NET 10: - [What's new in Windows Forms](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/) documentation ## ComboBox Dark Mode Rendering Fix + In this update, we've resolved an issue where a disabled ComboBox displayed a white background instead of the appropriate dark mode color scheme. Now, regardless of whether the ComboBox is in editable, list, or simple mode, its constituent controls will correctly render with the proper dark mode background when disabled. - + ## RichTextBox Dark Mode Improvement and Known Limitation + We’ve also addressed the RichTextBox background issue in dark mode. Previously, a disabled RichTextBox would show a white background. Now it correctly displays the dark mode background. However, there's a known limitation: if the RichTextBox has formatted content, only the first few visible lines will appear correctly, and the formatting might not fully apply in the disabled state. - + As a temporary workaround, if maintaining full formatting in a disabled RichTextBox is essential, we recommend setting it to read-only and manually disabling selections. This helps achieve a better preview until a more permanent fix is available. Note that this limitation is due to the underlying RichTextBox control in the common controls library, and a full fix may require a future version update. - + ## PropertyGrid Dark Mode Enhancements + We’ve also improved the rendering of special buttons within the PropertyGrid for dark mode. Previously, the ellipsis button used to open an editor and the drop-down button for ComboBox-type editors were not rendering well in dark mode. Now, these elements have dedicated renderers ensuring they appear consistently and at the same quality as the rest of the UI in dark mode. - + Everything mentioned above pertains specifically to dark mode improvements in Preview 7. Other functionalities remain unchanged in this release. From 872d02ae9edc468bd5cfc1f8f937bd8b4e6eeacf Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 12:01:17 -0700 Subject: [PATCH 30/32] Update markdown link check workflow to allow all branches for pull requests and fix JSON formatting in release notes --- .github/workflows/markdown-link-check.yml | 2 +- release-notes/10.0/releases.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/markdown-link-check.yml b/.github/workflows/markdown-link-check.yml index 8bb54c4df9..7a5927f8cc 100644 --- a/.github/workflows/markdown-link-check.yml +++ b/.github/workflows/markdown-link-check.yml @@ -5,7 +5,7 @@ on: paths: - '**.md' pull_request: - branches: [main] + branches: '**' paths: - '**.md' diff --git a/release-notes/10.0/releases.json b/release-notes/10.0/releases.json index 2ac86f5e24..2543b7fe15 100644 --- a/release-notes/10.0/releases.json +++ b/release-notes/10.0/releases.json @@ -8,7 +8,7 @@ "release-type": "lts", "lifecycle-policy": "https://aka.ms/dotnetcoresupport", "releases": [ - { + { "release-date": "2025-11-11", "release-version": "10.0.0-preview.7", "security": false, From bc92c3b167355c612a08771cb31b598bda519323 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 12:03:01 -0700 Subject: [PATCH 31/32] Remove feature summaries from F# and Visual Basic release notes for Preview 7 --- release-notes/10.0/preview/preview7/fsharp.md | 11 ----------- release-notes/10.0/preview/preview7/visualbasic.md | 11 ++--------- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/release-notes/10.0/preview/preview7/fsharp.md b/release-notes/10.0/preview/preview7/fsharp.md index 0de1b0a719..3f0a3bd2f7 100644 --- a/release-notes/10.0/preview/preview7/fsharp.md +++ b/release-notes/10.0/preview/preview7/fsharp.md @@ -1,14 +1,3 @@ # F# in .NET 10 Preview 7 - Release Notes -Here's a summary of what's new in F# in this preview release: - -- [Feature](#feature) - -F# updates in .NET 10: - -- [What's new in F#](https://learn.microsoft.com/dotnet/fsharp/whats-new/) documentation - -## Feature - -Something about the feature This preview release does not contain new F# features. View the [What's new in F#](https://fsharp.github.io/fsharp-compiler-docs/release-notes/Language.html) documentation to learn more. diff --git a/release-notes/10.0/preview/preview7/visualbasic.md b/release-notes/10.0/preview/preview7/visualbasic.md index 17b34d69c6..0f0a5cae2f 100644 --- a/release-notes/10.0/preview/preview7/visualbasic.md +++ b/release-notes/10.0/preview/preview7/visualbasic.md @@ -1,13 +1,6 @@ # Visual Basic in .NET 10 Preview 7 - Release Notes -Here's a summary of what's new in Visual Basic in this preview release: - -- [Feature](#feature) - -Visual Basic updates in .NET 10: +This preview release does not contain new Visual Basic features. Please checkout the lastest documentation: - [What's new in Visual Basic](https://learn.microsoft.com/dotnet/visual-basic/whats-new/) documentation - -## Feature - -Something about the feature +- [Breaking changes](https://learn.microsoft.com/dotnet/visual-basic/whats-new/breaking-changes) From 1f6969096fcc43c952c15669e333c1758a7c5fc1 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Tue, 12 Aug 2025 12:05:28 -0700 Subject: [PATCH 32/32] Update release-notes/10.0/preview/preview7/csharp.md Co-authored-by: Bill Wagner --- release-notes/10.0/preview/preview7/csharp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes/10.0/preview/preview7/csharp.md b/release-notes/10.0/preview/preview7/csharp.md index 101613e5f2..fad3855ccb 100644 --- a/release-notes/10.0/preview/preview7/csharp.md +++ b/release-notes/10.0/preview/preview7/csharp.md @@ -41,4 +41,4 @@ Extension members are only considered for overload resolution when no applicable ## Named and optional parameters in expression trees -This is a small feature that removes a limitation for *expression trees*. Code in expression trees no longer needs to declare arguments for all optional parameters. In addition, code in expression trees can include named arguments. The call rewriting orders named arguments and provides values for missing optional parameters. Query providers shouldn't need to make any adjustments for this support. +This is a small feature that removes a limitation for *expression trees*. Code in lambda expressions can use optional parameters and named arguments when converted to an expression tree. The call rewriting orders named arguments and provides values for missing optional parameters. Query providers shouldn't need to make any adjustments for this support.