diff --git a/release-notes/10.0/README.md b/release-notes/10.0/README.md index b55a34edc4..7e3c03e053 100644 --- a/release-notes/10.0/README.md +++ b/release-notes/10.0/README.md @@ -67,4 +67,18 @@ It is currently in development and not supported. .NET 10 is expected to be rele - [What's new in EF Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) - [Preview 3](preview/preview3/efcore.md) - [Preview 2](preview/preview2/efcore.md) -- [Preview 2](preview/preview1/efcore.md) +- [Preview 1](preview/preview1/efcore.md) + +### Windows Forms + +- [What's new in Windows Forms for .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) +- [Preview 3](preview/preview3/winforms.md) +- [Preview 2](preview/preview2/winforms.md) +- [Preview 1](preview/preview1/winforms.md) + +### Windows Presentation Foundation (WPF) + +- [What's new in WPF for .NET 10](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) +- [Preview 3](preview/preview3/wpf.md) +- [Preview 2](preview/preview2/wpf.md) +- [Preview 1](preview/preview1/wpf.md) diff --git a/release-notes/10.0/preview/preview3/10.0.0-preview.3.md b/release-notes/10.0/preview/preview3/10.0.0-preview.3.md new file mode 100644 index 0000000000..fba32ad3c3 --- /dev/null +++ b/release-notes/10.0/preview/preview3/10.0.0-preview.3.md @@ -0,0 +1,812 @@ +# .NET 10 Preview 3 Binaries + +.NET 10 Preview 3 installers and binaries can be downloaded for the following product versions: + +- `.NET 10.0.0 Preview 3` +- `.NET SDK 10.0.100-preview.3.25201.16` + +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.3.25201.16 +``` + +## .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.3-sha.txt +[checksums-sdk]: https://builds.dotnet.microsoft.com/dotnet/checksums/10.0.0-preview.3-sha.txt + +[linux-packages]: ../../install-linux.md + +## Packages updated in this release + +| Package name | Version | +| :----------- | :------------------ | +| AspNetCoreRuntime.10.0.x64 | 10.0.0-preview-3-25172-1 | +| AspNetCoreRuntime.10.0.x86 | 10.0.0-preview-3-25172-1 | +| dotnet-ef | 10.0.0-preview.3.25171.6 | +| dotnet-ilverify | 10.0.0-preview.3.25171.5 | +| dotnet-sql-cache | 10.0.0-preview.3.25172.1 | +| FSharp.Compiler.Service | 43.9.300-preview.25181.1 | +| FSharp.Core | 9.0.300-beta.25181.1 | +| Microsoft.AspNetCore.App.Internal.Assets | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Ref | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.linux-arm | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.linux-arm64 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.linux-musl-arm | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.linux-musl-arm64 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.linux-musl-x64 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.linux-x64 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.osx-arm64 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.osx-x64 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.win-arm64 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.win-x64 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.App.Runtime.win-x86 | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.Certificate | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.Facebook | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.Google | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.JwtBearer | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.MicrosoftAccount | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.Negotiate | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.OpenIdConnect | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.Twitter | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authentication.WsFederation | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Authorization | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.AzureAppServices.HostingStartup | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.AzureAppServicesIntegration | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.Analyzers | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.Authorization | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.CustomElements | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.Forms | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.QuickGrid | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.QuickGrid.EntityFrameworkAdapter | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.Web | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.WebAssembly | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.WebAssembly.Authentication | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.WebAssembly.DevServer | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.WebAssembly.Server | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Components.WebView | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.ConcurrencyLimiter | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Connections.Abstractions | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Cryptography.Internal | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Cryptography.KeyDerivation | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.DataProtection | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.DataProtection.Abstractions | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.DataProtection.EntityFrameworkCore | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.DataProtection.Extensions | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.DataProtection.StackExchangeRedis | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Grpc.JsonTranscoding | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Grpc.Swagger.0 | 10.0-preview.3.25172.1 | +| Microsoft.AspNetCore.HeaderPropagation | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Hosting.WindowsServices | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Http.Connections.Client | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Http.Connections.Common | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Identity.EntityFrameworkCore | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Identity.UI | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.JsonPatch | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Metadata | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.MiddlewareAnalysis | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Mvc.NewtonsoftJson | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Mvc.Testing | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.OpenApi | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.OutputCaching.StackExchangeRedis | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.Owin | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SignalR.Client | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SignalR.Client.Core | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SignalR.Common | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SignalR.Protocols.Json | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SignalR.Protocols.MessagePack | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SignalR.Specification.Tests | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SignalR.StackExchangeRedis | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SpaProxy | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.SpaServices.Extensions | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.TestHost | 10.0.0-preview.3.25172.1 | +| Microsoft.AspNetCore.WebUtilities | 10.0.0-preview.3.25172.1 | +| Microsoft.Authentication.WebAssembly.Msal | 10.0.0-preview.3.25172.1 | +| Microsoft.Bcl.AsyncInterfaces | 10.0.0-preview.3.25171.5 | +| Microsoft.Bcl.Cryptography | 10.0.0-preview.3.25171.5 | +| Microsoft.Bcl.Memory | 10.0.0-preview.3.25171.5 | +| Microsoft.Bcl.Numerics | 10.0.0-preview.3.25171.5 | +| Microsoft.Bcl.TimeProvider | 10.0.0-preview.3.25171.5 | +| Microsoft.CodeAnalysis.Analyzers | 3.12.0-beta1.25155.1 | +| Microsoft.CodeAnalysis.AnalyzerUtilities | 3.12.0-beta1.25155.1 | +| Microsoft.CodeAnalysis.BannedApiAnalyzers | 3.12.0-beta1.25155.1 | +| Microsoft.CodeAnalysis.Metrics | 4.0.0-beta1.25155.1 | +| Microsoft.CodeAnalysis.NetAnalyzers | 10.0.0-preview.25155.1 | +| Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers | 3.12.0-beta1.25155.1 | +| Microsoft.CodeAnalysis.PublicApiAnalyzers | 3.12.0-beta1.25155.1 | +| Microsoft.CodeAnalysis.ResxSourceGenerator | 3.12.0-beta1.25155.1 | +| Microsoft.CodeAnalysis.RulesetToEditorconfigConverter | 3.12.0-beta1.25155.1 | +| Microsoft.Data.Sqlite | 10.0.0-preview.3.25171.6 | +| Microsoft.Data.Sqlite.Core | 10.0.0-preview.3.25171.6 | +| Microsoft.dotnet-openapi | 10.0.0-preview.3.25172.1 | +| Microsoft.DotNet.ApiCompat.Task | 10.0.100-preview.3.25201.16 | +| Microsoft.DotNet.ApiCompat.Tool | 10.0.100-preview.3.25201.16 | +| Microsoft.DotNet.Common.ItemTemplates | 10.0.100-preview.3.25201.16 | +| Microsoft.DotNet.Common.ProjectTemplates.10.0 | 10.0.100-preview.3.25201.16 | +| Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| Microsoft.DotNet.Web.Client.ItemTemplates | 10.0.0-preview.3.25172.1 | +| Microsoft.DotNet.Web.ItemTemplates.10.0 | 10.0.0-preview.3.25172.1 | +| Microsoft.DotNet.Web.ProjectTemplates.10.0 | 10.0.0-preview.3.25172.1 | +| Microsoft.EntityFrameworkCore | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Abstractions | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Analyzers | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Cosmos | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Design | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.InMemory | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Proxies | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Relational | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Relational.Specification.Tests | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Specification.Tests | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Sqlite | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Sqlite.Core | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.SqlServer | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.SqlServer.Abstractions | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.SqlServer.HierarchyId | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Tasks | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Templates | 10.0.0-preview.3.25171.6 | +| Microsoft.EntityFrameworkCore.Tools | 10.0.0-preview.3.25171.6 | +| Microsoft.Extensions.ApiDescription.Client | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.ApiDescription.Server | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Caching.Abstractions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Caching.Memory | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Caching.SqlServer | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Caching.StackExchangeRedis | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Configuration | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.Abstractions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.Binder | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.CommandLine | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.EnvironmentVariables | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.FileExtensions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.Ini | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.Json | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.KeyPerFile | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Configuration.UserSecrets | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Configuration.Xml | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.DependencyInjection | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.DependencyInjection.Abstractions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.DependencyInjection.Specification.Tests | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.DependencyModel | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Diagnostics | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Diagnostics.Abstractions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Diagnostics.HealthChecks | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Features | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.FileProviders.Abstractions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.FileProviders.Composite | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.FileProviders.Embedded | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.FileProviders.Physical | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.FileSystemGlobbing | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Hosting | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Hosting.Abstractions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Hosting.Systemd | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Hosting.WindowsServices | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Http | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Http.Polly | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Identity.Core | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Identity.Stores | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Localization | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Localization.Abstractions | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Logging | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Logging.Abstractions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Logging.AzureAppServices | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Logging.Configuration | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Logging.Console | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Logging.Debug | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Logging.EventLog | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Logging.EventSource | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Logging.TraceSource | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.ObjectPool | 10.0.0-preview.3.25172.1 | +| Microsoft.Extensions.Options | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Options.ConfigurationExtensions | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Options.DataAnnotations | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.Primitives | 10.0.0-preview.3.25171.5 | +| Microsoft.Extensions.WebEncoders | 10.0.0-preview.3.25172.1 | +| Microsoft.ILVerification | 10.0.0-preview.3.25171.5 | +| Microsoft.JSInterop | 10.0.0-preview.3.25172.1 | +| Microsoft.JSInterop.WebAssembly | 10.0.0-preview.3.25172.1 | +| Microsoft.NET.Build.Containers | 10.0.100-preview.3.25201.16 | +| Microsoft.Net.Http.Headers | 10.0.0-preview.3.25172.1 | +| Microsoft.NET.ILLink.Tasks | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.Android.Sample.Mono | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.linux-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.linux-musl-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.linux-musl-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.linux-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.osx-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.osx-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-arm64.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Cache.win-x64.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-musl-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-musl-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.linux-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.osx-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.osx-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-arm64.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Node.win-x64.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.osx-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.osx-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.win-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.win-arm64.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.win-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Python.win-x64.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-musl-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-musl-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.linux-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.osx-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.osx-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.win-arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.win-arm64.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.win-x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.Emscripten.3.1.56.Sdk.win-x64.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Runtime.iOS.Sample.Mono | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.LibraryBuilder.Sdk | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.MonoAOTCompiler.Task | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.MonoAOTCompiler.Task.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.MonoTargets.Sdk | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.MonoTargets.Sdk.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.wasm.Sample.Mono | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Sdk | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Sdk.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Templates.net10 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Templates.net10.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Templates.net10.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Templates.net10.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.Net.Sdk.Compilers.Toolset | 10.0.100-preview.3.25201.16 | +| Microsoft.NET.Sdk.IL | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Sdk.WebAssembly.Pack | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Sdk.WebAssembly.Pack.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Sdk.WebAssembly.Pack.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Sdk.WebAssembly.Pack.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.WebAssembly.Threading | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net6.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net6.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net6.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net6.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net7.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net7.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net7.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net7.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net8.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net8.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net8.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net8.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net9.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net9.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net9.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Emscripten.net9.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25168.2 | +| Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest-10.0.100-preview.3 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest-10.0.100-preview.3.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest-10.0.100-preview.3.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest-10.0.100-preview.3.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.linux-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.linux-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.linux-musl-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.linux-musl-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.linux-musl-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.linux-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.osx-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.osx-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.win-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.win-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Crossgen2.win-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.linux-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.linux-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.linux-bionic-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.linux-bionic-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.linux-musl-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.linux-musl-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.linux-musl-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.linux-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.osx-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.osx-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.win-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.win-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Host.win-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Ref | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.ios-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvos-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x86.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.linux-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.linux-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.linux-bionic-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.linux-bionic-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.linux-musl-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.linux-musl-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.linux-musl-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.linux-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-arm64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.android-x86.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.browser-wasm.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.ios-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.ios-arm64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvos-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvos-arm64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.wasi-wasm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.Mono.wasi-wasm.Msi.x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.ios-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.iossimulator-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.iossimulator-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-bionic-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-arm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-musl-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.linux-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.maccatalyst-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.maccatalyst-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.osx-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.osx-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.tvos-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.tvossimulator-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.tvossimulator-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.win-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.win-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.NativeAOT.win-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.osx-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.osx-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.win-arm64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.win-x64 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.App.Runtime.win-x86 | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| Microsoft.TemplateEngine.Abstractions | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Authoring.CLI | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Authoring.Tasks | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Authoring.Templates | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Authoring.TemplateVerifier | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Core | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Core.Contracts | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Edge | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.IDE | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Orchestrator.RunnableProjects | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Samples | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.TemplateLocalizer.Core | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateEngine.Utils | 10.0.100-preview.3.25168.1 | +| Microsoft.TemplateSearch.Common | 10.0.100-preview.3.25168.1 | +| Microsoft.Win32.Registry.AccessControl | 10.0.0-preview.3.25171.5 | +| Microsoft.Win32.SystemEvents | 10.0.0-preview.3.25171.5 | +| Microsoft.Windows.Compatibility | 10.0.0-preview.3.25174.1 | +| Microsoft.WindowsDesktop.App.Ref | 10.0.0-preview.3.25174.1 | +| Microsoft.WindowsDesktop.App.Runtime.win-arm64 | 10.0.0-preview.3.25174.1 | +| Microsoft.WindowsDesktop.App.Runtime.win-x64 | 10.0.0-preview.3.25174.1 | +| Microsoft.WindowsDesktop.App.Runtime.win-x86 | 10.0.0-preview.3.25174.1 | +| Microsoft.XmlSerializer.Generator | 10.0.0-preview.3.25171.5 | +| Roslyn.Diagnostics.Analyzers | 3.12.0-beta1.25155.1 | +| runtime.android-arm.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.android-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.android-x64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.android-x86.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm64.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.linux-bionic-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.linux-bionic-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.linux-bionic-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.linux-bionic-x64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm64.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-x64.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-x64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-musl-x64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.linux-x64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.linux-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.linux-x64.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-x64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.linux-x64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.maccatalyst-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.maccatalyst-x64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.osx-arm64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.osx-arm64.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.osx-arm64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.osx-arm64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.osx-x64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.osx-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.osx-x64.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.osx-x64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.osx-x64.runtime.native.System.IO.Ports | 10.0.0-preview.3.25171.5 | +| runtime.win-arm64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.win-arm64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.win-arm64.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.win-arm64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.win-x64.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.win-x64.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.win-x64.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.win-x64.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| runtime.win-x86.Microsoft.DotNet.ILCompiler | 10.0.0-preview.3.25171.5 | +| runtime.win-x86.Microsoft.NETCore.DotNetAppHost | 10.0.0-preview.3.25171.5 | +| runtime.win-x86.Microsoft.NETCore.ILAsm | 10.0.0-preview.3.25171.5 | +| runtime.win-x86.Microsoft.NETCore.ILDAsm | 10.0.0-preview.3.25171.5 | +| System.CodeDom | 10.0.0-preview.3.25171.5 | +| System.Collections.Immutable | 10.0.0-preview.3.25171.5 | +| System.ComponentModel.Composition | 10.0.0-preview.3.25171.5 | +| System.ComponentModel.Composition.Registration | 10.0.0-preview.3.25171.5 | +| System.Composition | 10.0.0-preview.3.25171.5 | +| System.Composition.AttributedModel | 10.0.0-preview.3.25171.5 | +| System.Composition.Convention | 10.0.0-preview.3.25171.5 | +| System.Composition.Hosting | 10.0.0-preview.3.25171.5 | +| System.Composition.Runtime | 10.0.0-preview.3.25171.5 | +| System.Composition.TypedParts | 10.0.0-preview.3.25171.5 | +| System.Configuration.ConfigurationManager | 10.0.0-preview.3.25171.5 | +| System.Data.Odbc | 10.0.0-preview.3.25171.5 | +| System.Data.OleDb | 10.0.0-preview.3.25171.5 | +| System.Diagnostics.DiagnosticSource | 10.0.0-preview.3.25171.5 | +| System.Diagnostics.EventLog | 10.0.0-preview.3.25171.5 | +| System.Diagnostics.PerformanceCounter | 10.0.0-preview.3.25171.5 | +| System.DirectoryServices | 10.0.0-preview.3.25171.5 | +| System.DirectoryServices.AccountManagement | 10.0.0-preview.3.25171.5 | +| System.DirectoryServices.Protocols | 10.0.0-preview.3.25171.5 | +| System.Drawing.Common | 10.0.0-preview.3.25173.2 | +| System.Formats.Asn1 | 10.0.0-preview.3.25171.5 | +| System.Formats.Cbor | 10.0.0-preview.3.25171.5 | +| System.Formats.Nrbf | 10.0.0-preview.3.25171.5 | +| System.IO.Hashing | 10.0.0-preview.3.25171.5 | +| System.IO.Packaging | 10.0.0-preview.3.25171.5 | +| System.IO.Pipelines | 10.0.0-preview.3.25171.5 | +| System.IO.Ports | 10.0.0-preview.3.25171.5 | +| System.Linq.AsyncEnumerable | 10.0.0-preview.3.25171.5 | +| System.Management | 10.0.0-preview.3.25171.5 | +| System.Memory.Data | 10.0.0-preview.3.25171.5 | +| System.Net.Http.Json | 10.0.0-preview.3.25171.5 | +| System.Net.Http.WinHttpHandler | 10.0.0-preview.3.25171.5 | +| System.Net.ServerSentEvents | 10.0.0-preview.3.25171.5 | +| System.Numerics.Tensors | 10.0.0-preview.3.25171.5 | +| System.Reflection.Context | 10.0.0-preview.3.25171.5 | +| System.Reflection.Metadata | 10.0.0-preview.3.25171.5 | +| System.Reflection.MetadataLoadContext | 10.0.0-preview.3.25171.5 | +| System.Resources.Extensions | 10.0.0-preview.3.25171.5 | +| System.Runtime.Caching | 10.0.0-preview.3.25171.5 | +| System.Runtime.Serialization.Formatters | 10.0.0-preview.3.25171.5 | +| System.Runtime.Serialization.Schema | 10.0.0-preview.3.25171.5 | +| System.Security.Cryptography.Cose | 10.0.0-preview.3.25171.5 | +| System.Security.Cryptography.Pkcs | 10.0.0-preview.3.25171.5 | +| System.Security.Cryptography.ProtectedData | 10.0.0-preview.3.25171.5 | +| System.Security.Cryptography.Xml | 10.0.0-preview.3.25171.5 | +| System.Security.Permissions | 10.0.0-preview.3.25171.5 | +| System.ServiceModel.Syndication | 10.0.0-preview.3.25171.5 | +| System.ServiceProcess.ServiceController | 10.0.0-preview.3.25171.5 | +| System.Speech | 10.0.0-preview.3.25171.5 | +| System.Text.Encoding.CodePages | 10.0.0-preview.3.25171.5 | +| System.Text.Encodings.Web | 10.0.0-preview.3.25171.5 | +| System.Text.Json | 10.0.0-preview.3.25171.5 | +| System.Threading.AccessControl | 10.0.0-preview.3.25171.5 | +| System.Threading.Channels | 10.0.0-preview.3.25171.5 | +| System.Threading.RateLimiting | 10.0.0-preview.3.25171.5 | +| System.Threading.Tasks.Dataflow | 10.0.0-preview.3.25171.5 | +| System.Windows.Extensions | 10.0.0-preview.3.25171.5 | +| Text.Analyzers | 3.12.0-beta1.25155.1 | + +[//]: # ( Runtime 10.0.0-preview.3.25171.5) +[dotnet-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/6f4bbf0f-abe4-4f0a-bbc4-55c94403a948/089a0e490e76eeb175665a272a348bf4/dotnet-runtime-10.0.0-preview.3.25171.5-linux-arm.tar.gz +[dotnet-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f4c2c85e-22f4-45fe-911b-c38fec02b204/fa7a151a8e0b4f1164efe224e5dbdf56/dotnet-runtime-10.0.0-preview.3.25171.5-linux-arm64.tar.gz +[dotnet-runtime-linux-bionic-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d9d3e766-e5b9-471e-ba37-13ded5f4303b/687ce6b5d880d1050b3dca36ea186de8/dotnet-runtime-10.0.0-preview.3.25171.5-linux-bionic-arm64.tar.gz +[dotnet-runtime-linux-bionic-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/dfc40c7e-24ec-4c14-90ae-5b7afc59909a/4f65465fedb0bc27d6c2a7c97a790ee0/dotnet-runtime-10.0.0-preview.3.25171.5-linux-bionic-x64.tar.gz +[dotnet-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/a447df99-584c-41c2-bb74-d67204e39c77/f0a1dd4172eb8c2f5c789f611e9c3fb5/dotnet-runtime-10.0.0-preview.3.25171.5-linux-musl-arm.tar.gz +[dotnet-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f6cf6686-da7c-41d5-a50c-bc8202dbc9c7/2ff7e5863885a951225d7224fa5de591/dotnet-runtime-10.0.0-preview.3.25171.5-linux-musl-arm64.tar.gz +[dotnet-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/e94a10fe-b028-4678-8814-71feb5426948/2713bd4c049d242db863cab469ce67a2/dotnet-runtime-10.0.0-preview.3.25171.5-linux-musl-x64.tar.gz +[dotnet-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/4e0d6d7c-b77d-423a-b761-94d1f84e2a71/f138f1489fbdf37fc4c613a00c30bbdf/dotnet-runtime-10.0.0-preview.3.25171.5-linux-x64.tar.gz +[dotnet-runtime-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/9bcbd53f-34f6-4263-ac48-d3ebfc8f7225/fa3f3f00d8b5b6e3d42568a295d39b46/dotnet-runtime-10.0.0-preview.3.25171.5-osx-arm64.pkg +[dotnet-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/2bde1bc2-1a8b-4453-a0ed-b91ab2af0d74/c96ef4326b9a67f5b75ec1604654db85/dotnet-runtime-10.0.0-preview.3.25171.5-osx-arm64.tar.gz +[dotnet-runtime-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/fa201087-04e2-4f67-ada1-06107562552f/f56c2a67750a76d8806fd036563183e3/dotnet-runtime-10.0.0-preview.3.25171.5-osx-x64.pkg +[dotnet-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/1cc1a632-30e8-4a1f-8a5e-265db75d9d2d/dd3817ad79551a425496a60cf6ea37e2/dotnet-runtime-10.0.0-preview.3.25171.5-osx-x64.tar.gz +[dotnet-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/16353c1e-adcf-479c-8e28-67c4b6c956ac/ccda270546e0b1f6adbcdb5673131c8b/dotnet-runtime-10.0.0-preview.3.25171.5-win-arm64.exe +[dotnet-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/3f50c28d-c1e9-4c74-8ad2-1491e529c83d/9e8186e15e851af332d57377cd50a23c/dotnet-runtime-10.0.0-preview.3.25171.5-win-arm64.zip +[dotnet-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/46875da5-5628-499f-9c1c-83ae8d1bb247/98cffa5306ca593373e0706acbd02aa1/dotnet-runtime-10.0.0-preview.3.25171.5-win-x64.exe +[dotnet-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/d6af1df3-51f8-4bdc-960a-f2d5d120903e/a2d061ad81c1034678f8d07a8d2bb79f/dotnet-runtime-10.0.0-preview.3.25171.5-win-x64.zip +[dotnet-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/f4bb89be-5fe3-4d9c-a22d-da2adf3c2d12/c66549b1c91f076b24b7e1eacb548ee6/dotnet-runtime-10.0.0-preview.3.25171.5-win-x86.exe +[dotnet-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/13d09e6b-a1ab-4bd2-b226-efab3bcf75c3/a157c2a0bb49a79ee3c58abaa5bdd6e3/dotnet-runtime-10.0.0-preview.3.25171.5-win-x86.zip + +[//]: # ( WindowsDesktop 10.0.0-preview.3.25174.1) +[windowsdesktop-runtime-win-arm64.exe]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.3.25174.1/windowsdesktop-runtime-10.0.0-preview.3.25174.1-win-arm64.exe +[windowsdesktop-runtime-win-arm64.zip]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.3.25174.1/windowsdesktop-runtime-10.0.0-preview.3.25174.1-win-arm64.zip +[windowsdesktop-runtime-win-x64.exe]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.3.25174.1/windowsdesktop-runtime-10.0.0-preview.3.25174.1-win-x64.exe +[windowsdesktop-runtime-win-x64.zip]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.3.25174.1/windowsdesktop-runtime-10.0.0-preview.3.25174.1-win-x64.zip +[windowsdesktop-runtime-win-x86.exe]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.3.25174.1/windowsdesktop-runtime-10.0.0-preview.3.25174.1-win-x86.exe +[windowsdesktop-runtime-win-x86.zip]: https://builds.dotnet.microsoft.com/dotnet/WindowsDesktop/10.0.0-preview.3.25174.1/windowsdesktop-runtime-10.0.0-preview.3.25174.1-win-x86.zip + +[//]: # ( ASP 10.0.0-preview.3.25172.1) +[aspnetcore-runtime-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/d4e680b0-66b2-4db1-b15c-23446137afb5/eed1db30bdfaf27b401f74376819e4c6/aspnetcore-runtime-10.0.0-preview.3.25172.1-linux-arm.tar.gz +[aspnetcore-runtime-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/77d1a5e7-3795-4f21-b84a-88a545210251/129daebd1a9d155665b7e9feff233512/aspnetcore-runtime-10.0.0-preview.3.25172.1-linux-arm64.tar.gz +[aspnetcore-runtime-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/448cc827-4423-4b48-aebf-8274c77b1e46/152054001e5f156af74de0e59af66fba/aspnetcore-runtime-10.0.0-preview.3.25172.1-linux-musl-arm.tar.gz +[aspnetcore-runtime-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f54e0f3b-a196-49e5-ac88-23ce7f723675/3291e199c68d74b996809b24bfd5803c/aspnetcore-runtime-10.0.0-preview.3.25172.1-linux-musl-arm64.tar.gz +[aspnetcore-runtime-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/2c31faff-6acc-49f5-bc0f-e8262fcd03ea/d314ef16216caffc51d31039c1291e06/aspnetcore-runtime-10.0.0-preview.3.25172.1-linux-musl-x64.tar.gz +[aspnetcore-runtime-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/5639bd0f-0da4-4d40-a51f-55935459c812/852a66f2c444eae50e8b7b1468529c0b/aspnetcore-runtime-10.0.0-preview.3.25172.1-linux-x64.tar.gz +[aspnetcore-runtime-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/18bd9387-0361-430a-b35e-bf2f2d8865f5/bae576d6dcceba5166c1969d324fd8e5/aspnetcore-runtime-10.0.0-preview.3.25172.1-osx-arm64.tar.gz +[aspnetcore-runtime-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/b1c830c7-9c65-4c6c-be81-574c7eba7304/4047f3705ab8941cf431a1ac6b1a5eb7/aspnetcore-runtime-10.0.0-preview.3.25172.1-osx-x64.tar.gz +[aspnetcore-runtime-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/e17d2437-6b55-48f5-87ef-cf26e746be38/03625f6d978dc17e0f11c47305947e96/aspnetcore-runtime-10.0.0-preview.3.25172.1-win-arm64.exe +[aspnetcore-runtime-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/1220403c-27ae-4e5d-8602-62d3f84c6676/13b8fd629b94fe70d8a5fed06cee8fe1/aspnetcore-runtime-10.0.0-preview.3.25172.1-win-arm64.zip +[aspnetcore-runtime-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/d95061aa-78dc-4cfe-94d8-8459aee27aa2/fc2a09b0998d0ffedcb22fe1ab2930e1/aspnetcore-runtime-10.0.0-preview.3.25172.1-win-x64.exe +[aspnetcore-runtime-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/5c26ec13-6a00-4d3e-9939-ec52a89d76d8/668269a6e6d93253bbc7bf4d9be92821/aspnetcore-runtime-10.0.0-preview.3.25172.1-win-x64.zip +[aspnetcore-runtime-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/fd220464-dbbd-4a70-9c82-a2b378c227a9/18522d29028703f218a7e2e83ade4868/aspnetcore-runtime-10.0.0-preview.3.25172.1-win-x86.exe +[aspnetcore-runtime-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/5ca5198e-5eeb-4d7d-9838-b261df071d6f/618b264562c90fe24561852fd66da549/aspnetcore-runtime-10.0.0-preview.3.25172.1-win-x86.zip +[aspnetcore-runtime-composite-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f429bdb4-1e4d-4f5a-b5a8-6d69c1f71c2d/673d4f1110a3c0ac2c296df7f989f77c/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-linux-arm.tar.gz +[aspnetcore-runtime-composite-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/ccef3d64-8ff8-488c-ab3d-ca3c2a520521/c5f72b18d5865c482658ffecd758d1f3/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-linux-arm64.tar.gz +[aspnetcore-runtime-composite-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/4de25848-0ac1-4b6c-9378-d9c99f5543e5/d043cab3488a32c11951a74407004927/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-linux-musl-arm.tar.gz +[aspnetcore-runtime-composite-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/2334c1c8-bd7b-4975-9927-2f8b7e9d9478/8fb35da2b2f3c2050c9c34d97af4a052/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-linux-musl-arm64.tar.gz +[aspnetcore-runtime-composite-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/02be712d-386c-49c2-9ec5-91b2a6ebab17/3373fd9825d957eb6ea9c149d0037dfb/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-linux-musl-x64.tar.gz +[aspnetcore-runtime-composite-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/42eec747-8159-4048-bfc7-26a03e75e4ac/5e74e24c85a20aba33ad202cfa9764e4/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-linux-x64.tar.gz +[aspnetcore-runtime-composite-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/0b415578-dd66-47cf-90be-cc720a27b129/7f06be943a6160d3c1f3bf00b35c69a6/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-osx-arm64.tar.gz +[aspnetcore-runtime-composite-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/02e20512-848e-41ff-b57a-1a9b6daaa1e7/97fb74c5fa6a05ec8200a35ed9173ee0/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-osx-x64.tar.gz +[aspnetcore-runtime-composite-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/7d772f92-a0dc-4c3f-b1e6-c535cf970e6a/d552f49dd4eb0e8e7e5671335ec7e79b/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-win-arm64.zip +[aspnetcore-runtime-composite-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/eb981b35-ff4b-4c08-9a79-ebfa0ddefd58/cf1c58acb890d4f914b70c2be1cf03d7/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-win-x64.zip +[aspnetcore-runtime-composite-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/82eacd3e-cc93-4131-b43c-6fb6443ad3c4/d44f7264a26838b6c76b1fd7ec961b2c/aspnetcore-runtime-composite-10.0.0-preview.3.25172.1-win-x86.zip +[aspnetcore-targeting-pack-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/213472ff-940f-472c-af35-f9c14bfbf6f3/3d7b9b8ced6a08807641a1e1a1fb05ef/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-linux-arm.tar.gz +[aspnetcore-targeting-pack-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/04b64038-e096-465b-97c1-25c1402a82bc/be8f76546727cada89ec801b951c8170/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-linux-arm64.tar.gz +[aspnetcore-targeting-pack-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/42888b32-0817-4984-a6da-b384b389ba14/38b18aef36ae75a103e855c79e4189f5/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-linux-musl-arm.tar.gz +[aspnetcore-targeting-pack-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/652d142a-f638-4a85-a9bc-447645949e12/dd50d4f8e4627dc499869d484242ab71/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-linux-musl-arm64.tar.gz +[aspnetcore-targeting-pack-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/6fe31a11-3222-4734-aa7b-14e77be7e0fa/1fc1b2f0e6d9f2b3bf3065e6fdcaaf45/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-linux-musl-x64.tar.gz +[aspnetcore-targeting-pack-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/9b674eb8-cd57-451c-bb48-42e13210c1bd/fd6b1c57306134da2d789bc73aeda5f5/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-linux-x64.tar.gz +[aspnetcore-targeting-pack-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/dc641120-6799-4adf-8346-774433fb7ba2/9f26eb2dda83df6015ee77c2ed237e9b/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-osx-arm64.tar.gz +[aspnetcore-targeting-pack-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/4c175d96-e769-4308-8a1f-7f08fea5ed7b/21ce8e48f6a1923922905117e1c65fe1/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-osx-x64.tar.gz +[aspnetcore-targeting-pack-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/63b68134-0ade-4b63-9b74-49a7e403f8f8/f02b12a967e2174eabe2614caeb9d1ff/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-win-arm64.zip +[aspnetcore-targeting-pack-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/64e12b7d-9ff0-4b45-b071-d2d84547d0f2/5daabb434d54ed576aa404acd793a8d4/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-win-x64.zip +[aspnetcore-targeting-pack-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/80a1884e-f2cf-40cb-907d-1fe8e890767e/10684818b57a4df85cdd61ddc4ab0b9d/aspnetcore-targeting-pack-10.0.0-preview.3.25172.1-win-x86.zip +[dotnet-hosting-win.exe]: https://download.visualstudio.microsoft.com/download/pr/ba45541a-1e2f-468c-a790-0f5178173465/c21b57ac1bfb72ed290f7ae68485b4cb/dotnet-hosting-10.0.0-preview.3.25172.1-win.exe + +[//]: # ( SDK 10.0.100-preview.3.25201.16) +[dotnet-sdk-linux-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/c1628733-3be4-4367-80e0-8e1613180f37/a9c6f899d724bbf8cb06222f33d8be02/dotnet-sdk-10.0.100-preview.3.25201.16-linux-arm.tar.gz +[dotnet-sdk-linux-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/7449976f-1e7f-4726-86d4-1620c64dfea0/b3c00296f9b2b0ff7aa6f24b5fdc554e/dotnet-sdk-10.0.100-preview.3.25201.16-linux-arm64.tar.gz +[dotnet-sdk-linux-musl-arm.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/17212613-0444-487a-9b59-fdf1ea0fa074/8f5ea4d0b1cb038baec0da877df3a9b9/dotnet-sdk-10.0.100-preview.3.25201.16-linux-musl-arm.tar.gz +[dotnet-sdk-linux-musl-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/be1a6a87-c530-410d-8ea7-dd7df96996f7/5349bf0b8f7d44f6dbe66bbf4da6deec/dotnet-sdk-10.0.100-preview.3.25201.16-linux-musl-arm64.tar.gz +[dotnet-sdk-linux-musl-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/fd6df2c5-4009-45b5-8ddc-10ae3ac51851/ca77ba01ad124540586b1bb46a9629a8/dotnet-sdk-10.0.100-preview.3.25201.16-linux-musl-x64.tar.gz +[dotnet-sdk-linux-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/31fa10f4-a3fd-4a11-831e-62f697f5e126/93e337b7d4ac4f8f0d42326e54304f66/dotnet-sdk-10.0.100-preview.3.25201.16-linux-x64.tar.gz +[dotnet-sdk-osx-arm64.pkg]: https://download.visualstudio.microsoft.com/download/pr/188de847-fb6b-4fdd-b6eb-9cd8c68ab9e3/10653a1590e57e0e2df32d85f288b3cd/dotnet-sdk-10.0.100-preview.3.25201.16-osx-arm64.pkg +[dotnet-sdk-osx-arm64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/645d76a6-18a5-4095-99d0-44825c6980c1/83dbb957565d12939bc17072c9cb8aef/dotnet-sdk-10.0.100-preview.3.25201.16-osx-arm64.tar.gz +[dotnet-sdk-osx-x64.pkg]: https://download.visualstudio.microsoft.com/download/pr/740a9c43-b5b1-4a7b-8c27-bbb20a2e69f9/e12fc4cb179e0b63f46305edb9b0d8a6/dotnet-sdk-10.0.100-preview.3.25201.16-osx-x64.pkg +[dotnet-sdk-osx-x64.tar.gz]: https://download.visualstudio.microsoft.com/download/pr/f092b365-eaae-4327-8bbe-f2a4cf1891bb/e85af7c5a6d99b9329b70695261cf8a3/dotnet-sdk-10.0.100-preview.3.25201.16-osx-x64.tar.gz +[dotnet-sdk-win-arm64.exe]: https://download.visualstudio.microsoft.com/download/pr/95504016-0bf9-4a6a-9969-b290b6ac6669/21bf0a7e8c6e0de3bec2919d1b138902/dotnet-sdk-10.0.100-preview.3.25201.16-win-arm64.exe +[dotnet-sdk-win-arm64.zip]: https://download.visualstudio.microsoft.com/download/pr/da981097-7b0e-4ca0-bce9-87632349a0a1/2b95c21fd07af5b399c3ff62f20dc942/dotnet-sdk-10.0.100-preview.3.25201.16-win-arm64.zip +[dotnet-sdk-win-x64.exe]: https://download.visualstudio.microsoft.com/download/pr/c2521fec-3e52-4577-9185-14f5bd65830f/131e10d3ffcc019d5cf3746aa368c110/dotnet-sdk-10.0.100-preview.3.25201.16-win-x64.exe +[dotnet-sdk-win-x64.zip]: https://download.visualstudio.microsoft.com/download/pr/f4d1a750-8040-49f2-8f4c-d0941d66377c/6e27c9c70329adea19c9242ead78113b/dotnet-sdk-10.0.100-preview.3.25201.16-win-x64.zip +[dotnet-sdk-win-x86.exe]: https://download.visualstudio.microsoft.com/download/pr/d5710b71-51f2-48fb-a23c-f2e80ec06495/ad4ac78d1f12de6e3db691d7a628ff88/dotnet-sdk-10.0.100-preview.3.25201.16-win-x86.exe +[dotnet-sdk-win-x86.zip]: https://download.visualstudio.microsoft.com/download/pr/4669fd4d-4802-4869-acce-48ca9d929e64/9c59a3875c9222fb174813e6c6c44f89/dotnet-sdk-10.0.100-preview.3.25201.16-win-x86.zip diff --git a/release-notes/10.0/preview/preview3/README.md b/release-notes/10.0/preview/preview3/README.md new file mode 100644 index 0000000000..2b58164ef9 --- /dev/null +++ b/release-notes/10.0/preview/preview3/README.md @@ -0,0 +1,40 @@ +# .NET 10 Preview 3 - Release Notes + +.NET 10 Preview 3 released on April 10, 2025. Find more information on new features released in .NET 10 Preview 3 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 3 can be found [here on GitHub](./10.0.0-preview.3.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/preview3/aspnetcore.md b/release-notes/10.0/preview/preview3/aspnetcore.md new file mode 100644 index 0000000000..4733d14c02 --- /dev/null +++ b/release-notes/10.0/preview/preview3/aspnetcore.md @@ -0,0 +1,279 @@ +# ASP.NET Core in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new in ASP.NET Core in this preview release: + +- [Declarative model for persisting state from components and services](#declarative-model-for-persisting-state-from-components-and-services) +- [Reference fingerprinted static web assets in standalone Blazor WebAssembly apps](#reference-fingerprinted-static-web-assets-in-standalone-blazor-webassembly-apps) +- [`HttpClient` response streaming enabled by default on WebAssembly](#httpclient-response-streaming-enabled-by-default-on-webassembly) +- [`DisableMatchAllIgnoresLeftUriPart` app context switch renamed to `EnableMatchAllForQueryStringAndFragment`](#disablematchallignoreslefturipart-app-context-switch-renamed-to-enablematchallforquerystringandfragment) +- [Set the environment at build-time for standalone Blazor WebAssembly apps](#set-the-environment-at-build-time-for-standalone-blazor-webassembly-apps) +- [Validation support in minimal APIs](#validation-support-in-minimal-apis) +- [OpenAPI support enabled by default in the ASP.NET Core Web API (native AOT) template](#openapi-support-enabled-by-default-in-the-aspnet-core-web-api-native-aot-template) +- [Support for Server-Sent Events (SSE)](#support-for-server-sent-events-sse) + +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) + +## Declarative model for persisting state from components and services + +You can now declaratively specify state to persist from components and services using the `SupplyParameterFromPersistentComponentState` attribute. Properties with this attribute will automatically be persisted using the `PersistentComponentState` service during prerendering and then loaded when the component renders interactively or the service is instantiated. + +Previously, persisting state from a component during prerendering using the `PersistentComponentState` service involved a significant amount of code: + +```razor +@page "/movies" +@inject IMovieService MovieService +@inject PersistentComponentState ApplicationState +@implements IDisposable + +Movies + +

Movies

+ +@if (MoviesList == null) +{ +

Loading...

+} +else +{ + + + + + + +} + +@code { + public List? MoviesList { get; set; } + private PersistingComponentStateSubscription? persistingSubscription; + + protected override async Task OnInitializedAsync() + { + if (!ApplicationState.TryTakeFromJson>("movies", out var movies)) + { + MoviesList = await MovieService.GetMoviesAsync(); + } + else + { + MoviesList = movies; + } + + persistingSubscription = ApplicationState.RegisterOnPersisting(() => + { + ApplicationState.PersistAsJson("movies", MoviesList); + return Task.CompletedTask; + }); + } + + public void Dispose() => persistingSubscription?.Dispose(); +} +``` + +This code can now be simplified using the new declarative model: + +```razor +@page "/movies" +@inject IMovieService MovieService + +Movies + +

Movies

+ +@if (MoviesList == null) +{ +

Loading...

+} +else +{ + + + + + + +} + +@code { + [SupplyParameterFromPersistentComponentState] + public List? MoviesList { get; set; } + + protected override async Task OnInitializedAsync() + { + MoviesList ??= await MovieService.GetMoviesAsync(); + } +} +``` + +## Reference fingerprinted static web assets in standalone Blazor WebAssembly apps + +Standalone Blazor WebAssembly apps can now reference framework static web assets using either a generated import map or a fingerprinted URL. The import map and fingerprinted URLs are generated during the build process when the `true` property is specified in the project file. + +blazorwasm.csproj: + +```diff + + + net10.0 + enable + enable ++ true + + +``` + +To specify where the import map should be generated, add an empty `` element to your _index.html_ file. To generate fingerprinted URLs for referenced static web assets, use the `#[.{fingerprint}]` placeholder. + +index.html: + +```diff + + + + + + + BlazorWasmFingerprintingE2E + + .... ++ + + + +
+ + + + +
+
+ +
+ An unhandled error has occurred. + Reload + đź—™ +
+- ++ + + + +``` + +## `HttpClient` response streaming enabled by default on WebAssembly + +Response streaming is now enabled by default for `HttpClient` in Blazor WebAssembly. This change improves performance and reduces memory usage when handling large responses. However, it also means the response stream no longer supports synchronous operations because it is no longer a `MemoryStream`. If your code requires using synchronous operations, you can opt-out of response streaming for an individual request using the `SetBrowserResponseStreamingEnabled` extension method on the response message: + +```csharp +requestMessage.SetBrowserResponseStreamingEnabled(false); +``` + +## `DisableMatchAllIgnoresLeftUriPart` app context switch renamed to `EnableMatchAllForQueryStringAndFragment` + +The `Microsoft.AspNetCore.Components.Routing.NavLink.DisableMatchAllIgnoresLeftUriPart` app context switch was renamed to `Microsoft.AspNetCore.Components.Routing.NavLink.EnableMatchAllForQueryStringAndFragment`. + +## Set the environment at build-time for standalone Blazor WebAssembly apps + +You can now specify the environment for a standalone Blazor WebAssembly app at build-time using the `` property in the client app's project file (`.csproj`). In .NET 10, the `Blazor-Environment` header is no longer generated or used for setting the client environment. + +The following example sets the app's environment to `Staging`: + +```xml +Staging +``` + +The default environments applied to the app are: + +- `Development` for build. +- `Production` for publish. + +## Validation support in minimal APIs + +Support for validation in minimal APIs is now available. This feature allows you to request validation of data sent to your API endpoints. When validation is enabled, the ASP.NET Core runtime performs any validations defined on query, header, and route parameters, as well as on the request body. Validations can be defined using attributes in the `System.ComponentModel.DataAnnotations` namespace. + +Developers can customize the behavior of the validation system by: + +- creating custom [ValidationAttribute](https://learn.microsoft.com/dotnet/api/system.componentmodel.dataannotations.validationattribute) implementations +- implementing the [IValidatableObject](https://learn.microsoft.com/dotnet/api/system.componentmodel.dataannotations.ivalidatableobject) interface for complex validation logic + +When validation fails, the runtime returns a 400 Bad Request response with details of the validation errors. + +To enable built-in validation support for minimal APIs, call the `AddValidation` extension method to register the required services into the service container for your application. + +```csharp +builder.Services.AddValidation(); +``` + +You also need to set the `InterceptorsNamespaces` property in your project file as follows: + +```xml + + $(InterceptorsNamespaces);Microsoft.AspNetCore.Http.Validation.Generated + +``` + +The implementation automatically discovers types that are defined in minimal API handlers or as base types of types defined in minimal API handlers. Validation is performed on these types by an endpoint filter added to each endpoint. + +Validation can be disabled for specific endpoints by using the `DisableValidation` extension method. + +```csharp +app.MapPost("/products", + ([EvenNumber(ErrorMessage = "Product ID must be even")] int productId, [Required] string name) + => TypedResults.Ok(productId)) + .DisableValidation(); +``` + +## OpenAPI support enabled by default in the ASP.NET Core Web API (native AOT) template + +The ASP.NET Core Web API (native AOT) project template now has OpenAPI document generation support enabled by default using the Microsoft.AspNetCore.OpenApi package. This support can be disabled if desired, using the `--no-openapi` flag when creating a new project from the command-line interface. + +Thank you [@sander1095](https://github.com/sander1095) for this contribution! + +## Support for Server-Sent Events (SSE) + +ASP.NET Core now supports returning a `ServerSentEvents` result using the `TypedResults.ServerSentEvents` API. This feature is supported in both minimal APIs and controller-based apps. + +Server-Sent Events (SSE) is a server push technology that allows a server to send a stream of event messages to a client over a single HTTP connection. In .NET the event messages are represented as [`SseItem`](https://learn.microsoft.com/dotnet/api/system.net.serversentevents.sseitem-1) objects, which may contain an event type, an ID, and a data payload of type `T`. + +The TypedResults class includes a new static `ServerSentEvents` method for returning a `ServerSentEvents` result. The first parameter to this method is an `IAsyncEnumerable>` that represents the stream of event messages to be sent to the client. + +The following example illustrates how to use the `TypedResults.ServerSentEvents` API to return a stream of heart rate events as JSON objects to the client: + +```csharp +app.MapGet("/json-item", (CancellationToken cancellationToken) => +{ + async IAsyncEnumerable GetHeartRate( + [EnumeratorCancellation] CancellationToken cancellationToken) + { + while (!cancellationToken.IsCancellationRequested) + { + var heartRate = Random.Shared.Next(60, 100); + yield return HeartRateEvent.Create(heartRate); + await Task.Delay(2000, cancellationToken); + } + } + + return TypedResults.ServerSentEvents(GetHeartRate(cancellationToken), eventType: "heartRate"); +}); +``` + +## Community contributors + +Thank you contributors! ❤️ + +- [@NSTom](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3ANSTom) +- [@Varorbc](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3AVarorbc) +- [@Youssef1313](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3AYoussef1313) +- [@alexbeeston](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Aalexbeeston) +- [@benhopkinstech](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Abenhopkinstech) +- [@jnjudge1](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Ajnjudge1) +- [@lextm](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Alextm) +- [@mapedersen](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Amapedersen) +- [@nidaca](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Anidaca) +- [@sander1095](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Asander1095) +- [@shethaadit](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Ashethaadit) +- [@smnsht](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Asmnsht) +- [@xt0rted](https://github.com/dotnet/aspnetcore/pulls?q=is%3Apr+is%3Amerged+milestone%3A10.0-preview3+author%3Axt0rted) diff --git a/release-notes/10.0/preview/preview3/containers.md b/release-notes/10.0/preview/preview3/containers.md new file mode 100644 index 0000000000..389f89ba7b --- /dev/null +++ b/release-notes/10.0/preview/preview3/containers.md @@ -0,0 +1,3 @@ +# Container image updates in .NET 10 Preview 3 - Release Notes + +This preview release does not contain new Container image features. diff --git a/release-notes/10.0/preview/preview3/csharp.md b/release-notes/10.0/preview/preview3/csharp.md new file mode 100644 index 0000000000..f9b17af110 --- /dev/null +++ b/release-notes/10.0/preview/preview3/csharp.md @@ -0,0 +1,128 @@ +# C# 14 updates in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new in C# in this preview release: + +- [Extension members](#extension-members) +- [Null-conditional assignment](#null-conditional-assignment) + +C# 14 updates: + +- [What's new in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/csharp-14) documentation +- [Breaking changes in C# 14](https://learn.microsoft.com/dotnet/csharp/whats-new/breaking-changes/compiler%20breaking%20changes%20-%20dotnet%2010) + +## Extension members + +Extensions just got even more powerful! In Preview 3, they now support static methods, instance properties, and static properties—expanding the capabilities you already know and love. And this is just the beginning—stay tuned for even more extension support in an upcoming release! + +Expanding extensions to other member types has been a long-standing challenge, driven by two key questions: how to declare them effectively and how to resolve ambiguity when multiple matching signatures exist. Additionally, we aimed to seamlessly support the new syntax for instance members—ensuring that users of instance extension methods never have to worry about whether they were declared with the old or new syntax. After extensive development, we’re bringing these solutions to life! + +Today you may have an extension method that follows the pattern: + +```csharp +public static class Extensions +{ + public static IEnumerable WhereGreaterThan(this IEnumerable source, int threshold) + => source.Where(x => x > threshold); +} +``` + +The _receiver_ is the parameter prefaced by the `this` keyword - `source` in this case. Property declarations do not have a similar location to declare the receiver. Thus, C# 14 introduces `extension` blocks. These are blocks with a scope that exposes the receiver to its contained members. If we switch the `WhereGreaterThan` extension method to the new syntax and add an IsEmpty property the extension block would be: + +```csharp +public static class Extensions +{ + extension(IEnumerable source) + { + public IEnumerable WhereGreaterThan(int threshold) + => source.Where(x => x > threshold); + + public bool IsEmpty + => !source.Any(); + } +} +``` + +To use these members, you just call them: + +```csharp +var list = new List { 1, 2, 3, 4, 5 }; +var large = list.WhereGreaterThan(3); +if (large.IsEmpty) +{ + Console.WriteLine("No large numbers"); +} +else +{ + Console.WriteLine("Found large numbers"); +} +``` + +Generics are supported and the resolution rules are the same as for extension methods. For example, you could make `WhereGreaterThan` and `IsEmpty` generic: + +```csharp +extension(IEnumerable source) + where T : INumber +{ + public IEnumerable WhereGreaterThan(T threshold) + => source.Where(x => x > threshold); + + public bool IsEmpty + => !source.Any(); +} +``` + +The constraint to `INumber` allows the greater than operator to be used. + +Static methods and properties don't have a receiver, so the extension block list the type without a parameter name: + +```csharp +extension(List) +{ + public static List Create() + => []; +} +``` + +Extension blocks can seamlessly coexist with the extension methods you have today. There's no requirement to switch to the new syntax - both execute in exactly the same way. Just add extension blocks to the static classes that contain your existing extension methods. + +The choice is entirely yours. If you prefer to leave your existing extension methods untouched, you absolutely can. But if you’d rather update your code for a consistent look and take advantage of the new syntax, that option is available too. And with tools like Visual Studio, converting to your preferred form has never been easier! + +You'll see more extensions in upcoming previews, but we'd love to hear your feedback, so join the team and others in the community in the discussion [Extensions](https://github.com/dotnet/csharplang/discussions/8696). + +## Null-conditional assignment + +Null-conditional assignment assigns a value to a property or field only if the containing instance exists. Imagine you have a code similar to: + +```csharp +public class Customer +{ + public string Name { get; set; } + public int Age { get; set; } +} + +public class UpdateCustomer +{ + public static void UpdateAge(Customer? customer, int newAge) + { + if (customer is not null) + { + customer.Age = newAge; + } + } +} +``` + +You can simplify the `UpdateAge` method: + +```csharp +public static void UpdateAge(Customer? customer, int newAge) +{ + customer?.Age = newAge; +} +``` + +If the customer is not null, `Age` will be updated. If customer is null, nothing will happen. + +The IDE will help you by recommending this change via a lightbulb. + +We'd love your feedback on this feature so join us and others in the community in the discussion on [Null-conditional assignment](https://github.com/dotnet/csharplang/discussions/8676). diff --git a/release-notes/10.0/preview/preview3/dotnetmaui.md b/release-notes/10.0/preview/preview3/dotnetmaui.md new file mode 100644 index 0000000000..68d58e17b9 --- /dev/null +++ b/release-notes/10.0/preview/preview3/dotnetmaui.md @@ -0,0 +1,89 @@ +# .NET MAUI in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new in .NET MAUI, .NET for Android, and .NET for iOS, Mac Catalyst, macOS, and tvOS in this preview release: + +- .NET MAUI + - [API deprecations of `LsitView`, `Cell`, and `TableView`](#api-deprecations) + - [Fullscreen video playback](#fullscreen-video-playback) + - [Geolocation IsEnabled](#geolocation-isenabled) + - [WebAuthenticator CancellationToken](#webauthenticator-cancellationtoken) + - [Performance improvements](#performance-improvements) +- [.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 in .NET 10](https://learn.microsoft.com/dotnet/maui/whats-new/dotnet-10) documentation. + +## API deprecations + +This release includes deprecations of `ListView`, `Cell`, and `TableView`. These will be removed in a future release. + +## Fullscreen video playback + +Now on Android you can play videos fullscreen hosted in a `WebView`. The `iframe` should include `allowfullscreen`. + +## Geolocation IsEnabled + +Use `IsEnabled` to check if the device has geolocation services enabled independently of requesting location details. + +## WebAuthenticator CancellationToken + +A `CancellationToken` may now be passed to `WebAuthenticator.AuthenticateAsync` enabling you to programmatically cancel authentication. + +## Performance improvements + +Various incremental improvements are to runtime performance are included in this release. + +### PropertyMapper improvement benchmarks + +Each control handler maps properties to the core controls via `PropertyMapper`s. A new cache has been implemented, and improvements have been made to the order in which properties are applied, thus avoiding some race conditions and repetitive calls. + +> BenchmarkDotNet v0.13.10, macOS 15.3.1 (24D70) [Darwin 24.3.0] +> Apple M3 Pro, 1 CPU, 11 logical and 11 physical cores +> .NET SDK 9.0.102 + +Before: + +| Method | Mean | Error | StdDev | Gen0 | Allocated | +|-------------------------- |----------:|---------:|---------:|----------:|-----------:| +| BenchmarkUpdateProperties | 167.67 ms | 0.584 ms | 0.547 ms | 3333.3333 | 29604261 B | +| BenchmarkUpdateProperty | 31.65 ms | 0.079 ms | 0.070 ms | - | 46 B | + +After: + +| Method | Mean | Error | StdDev | Gen0 | Allocated | +|-------------------------- |---------:|---------:|---------:|----------:|-----------:| +| BenchmarkUpdateProperties | 59.04 ms | 0.294 ms | 0.275 ms | 3666.6667 | 31204122 B | +| BenchmarkUpdateProperty | 12.39 ms | 0.026 ms | 0.020 ms | - | 12 B | + +### CollectionView improvement benchmarks + +Building on previous work, we now eliminated the `MeasureInvalidated` subscription on iOS and enabled the templated cell to respond better to content changes. + +| Branch | Handler | Measure | Arrange | +| ------ | -------- | ------- | ------- | +| `main` | CV1 | 525 | 308 | +| `PR` | CV1 | 221 | 231 | +| `main` | CV2 (no-resize) | 1371 | 347 | +| `PR` | CV2 | 338 | 379 | + +[#28225](https://github.com/dotnet/maui/pull/28225) + +### FormattedString improvement + +`Label` on Windows has been optimized for rendering `FormattedString` resulting in a ~56% improvement. + +[See #28073 on GitHub](https://github.com/dotnet/maui/pull/28073) + +## .NET for Android + +This release was focused on quality improvements, build performance, and experimental runtimes. A detailed list can be found on [dotnet/android GitHub releases](https://github.com/dotnet/android/releases/). + +## .NET for iOS, Mac Catalyst, macOS, tvOS + +This release includes support for Xcode 16.3 Release Candidate, and is focused on quality improvements. A detailed list can be found on [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). + +## Community Contributors + +We extend a special thanks to our community contributors [@alexyakunin](https://github.com/alexyakunin), [@MartyIX](https://github.com/MartyIX), [@albyrock87](https://github.com/albyrock87), [@filipnavara](https://github.com/filipnavara), [@jadenrogers](https://github.com/jadenrogers), [@redducks100](https://github.com/redducks100), [@marcel-silva](https://github.com/marcel-silva), [@sheiksyedm](https://github.com/sheiksyedm), [@BrayanKhosravian](https://github.com/BrayanKhosravian), [@kubaflo](https://github.com/kubaflo), [@mos379](https://github.com/mos379), [@jkurdek](https://github.com/jkurdek), [@Choza-rajan](https://github.com/Choza-rajan), [@Tamilarasan-Paranthaman](https://github.com/Tamilarasan-Paranthaman), [@anandhan-rajagopal](https://github.com/anandhan-rajagopal), [@NirmalKumarYuvaraj](https://github.com/NirmalKumarYuvaraj), [@Ahamed-Ali](https://github.com/Ahamed-Ali), [@NanthiniMahalingam](https://github.com/NanthiniMahalingam), [@devanathan-vaithiyanathan](https://github.com/devanathan-vaithiyanathan), [@prakashKannanSf3972](https://github.com/prakashKannanSf3972), [@LogishaSelvarajSF4525](https://github.com/LogishaSelvarajSF4525), [@HarishKumarSF4517](https://github.com/HarishKumarSF4517), [@bhavanesh2001](https://github.com/bhavanesh2001), [@TamilarasanSF4853](https://github.com/TamilarasanSF4853), [@SubhikshaSf4851](https://github.com/SubhikshaSf4851), and [@SyedAbdulAzeemSF4852](https://github.com/SyedAbdulAzeemSF4852). diff --git a/release-notes/10.0/preview/preview3/efcore.md b/release-notes/10.0/preview/preview3/efcore.md new file mode 100644 index 0000000000..28fd431e87 --- /dev/null +++ b/release-notes/10.0/preview/preview3/efcore.md @@ -0,0 +1,30 @@ +# Entity Framework Core 10 Preview 3 - Release Notes + +Here's a summary of what's new in Entity Framework Core in this preview release: + +- [Improved experience when evolving the model on Azure Cosmos DB for NoSQL](#improved-experience-when-evolving-the-model-on-azure-cosmos-db-for-nosql) +- [Small improvements](#small-improvements) + +Entity Framework Core 10 updates: + +- [What's new in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/whatsnew) documentation +- [Breaking change in Entity Framework Core 10](https://learn.microsoft.com/ef/core/what-is-new/ef-core-10.0/breaking-changes) + +## Improved experience when evolving the model on Azure Cosmos DB for NoSQL + +In previous versions of EF Core, evolving the model when using Azure Cosmos DB was quite painful. Specifically, when adding a new required property to the entity, EF would no longer be able to materialize that entity. The reason was that EF expected a value for the new property (since it was required), but the document created before the change didn't contain those values. The workaround was to mark the property as optional first, manually add default values for the property, and only then change it to required. + +In EF 10 Preview 3 we improved this experience - EF will now materialize a default value for a required property, if no data is present for it in the document, rather than throw. + +## Small improvements + +- Redact inlined constants from log when sensitive logging is off ([#35724](https://github.com/dotnet/efcore/pull/35724)). +- Improve LoadExtension to work correctly with dotnet run and lib* named libs ([#35617](https://github.com/dotnet/efcore/pull/35617), contributed by [@krwq](https://github.com/krwq)). + +## Everything else in Preview 3 + +Preview 3 contains: + +- [4 enhancements](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-3%20(milestone%3A9.0.5%20OR%20milestone%3A10.0.0)%20label%3Atype-enhancement) +- [2 regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-3%20(milestone%3A9.0.5%20OR%20milestone%3A10.0.0)%20label%3Atype-bug%20label%3Aregression) +- [2 non-regression bug fixes](https://github.com/dotnet/efcore/issues?q=is%3Aissue%20is%3Aclosed%20label%3Apreview-3%20(milestone%3A10.0.0)%20label%3Atype-bug%20-label%3Aregression) diff --git a/release-notes/10.0/preview/preview3/fsharp.md b/release-notes/10.0/preview/preview3/fsharp.md new file mode 100644 index 0000000000..fee551d6d1 --- /dev/null +++ b/release-notes/10.0/preview/preview3/fsharp.md @@ -0,0 +1,21 @@ +# F# updates in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new in F# in this preview release: + +- [F# Language](#f-language) +- [FSharp.Core standard library](#fsharpcore-standard-library) +- [FSharp.Compiler.Service](#fsharpcompilerservice) + +> Note: Release notes for F# are generated for all contributions to the [dotnet/fsharp](https://github.com/dotnet/fsharp) repository and split across language, library and compiler changes. + +## F# Language + +[Release notes for new F# language features](https://fsharp.github.io/fsharp-compiler-docs/release-notes/Language.html) list language changes that have to be enabled by `preview` project property in `.fsproj` project file. They will become the default with .NET 10 release. + +## FSharp.Core Standard Library + +[Changes to the FSharp.Core standard library](https://fsharp.github.io/fsharp-compiler-docs/release-notes/FSharp.Core.html) are applied automatically to projects compiled with new SDK, unless they pin down a lower FSharp.Core version. + +## FSharp.Compiler.Service + +General improvements and bugfixes in the compiler implementation are at [Release notes for FSharp.Compiler.Service](https://fsharp.github.io/fsharp-compiler-docs/release-notes/FSharp.Compiler.Service.html). diff --git a/release-notes/10.0/preview/preview3/libraries.md b/release-notes/10.0/preview/preview3/libraries.md new file mode 100644 index 0000000000..0c05715832 --- /dev/null +++ b/release-notes/10.0/preview/preview3/libraries.md @@ -0,0 +1,107 @@ +# .NET Libraries in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new in .NET Libraries in this preview release: + +- [Introduce an AOT-Safe Constructor for `ValidationContext`](#introduce-an-aot-safe-constructor-for-validationcontext) +- [Support for Telemetry Schema URLs in `ActivitySource` and `Meter`](#support-for-telemetry-schema-urls-in-activitysource-and-meter) +- [Byte-Level Support in BPE Tokenizer](#byte-level-support-in-bpe-tokenizer) +- [Deterministic option for LightGBM Trainer in ML.NET](#deterministic-option-for-lightgbm-trainer-in-mlnet) +- [Tensor enhancements](#tensor-enhancements) + +.NET Libraries updates in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + +## Introduce an AOT-Safe Constructor for `ValidationContext` + +The `ValidationContext` class is used during options validation to provide validation context. Since extracting the `DisplayName` may involve reflection, all existing constructors of `ValidationContext` are currently marked as unsafe for AOT compilation. As a result, using `ValidationContext` in a native application build can generate warnings indicating that the type is unsafe. + +To address this, we are introducing a new [`ValidationContext` constructor](https://github.com/dotnet/runtime/issues/113134#issuecomment-2715310131) that explicitly accepts the `displayName` as a parameter. This new constructor ensures AOT safety, allowing developers to use `ValidationContext` in native builds without encountering errors or warnings. + +```csharp +namespace System.ComponentModel.DataAnnotations; + +public sealed class ValidationContext +{ + public ValidationContext(object instance, string displayName, IServiceProvider? serviceProvider = null, IDictionary? items = null) +} +``` + +## Support for Telemetry Schema URLs in `ActivitySource` and `Meter` + +[OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/schemas) defines a specification for supporting Telemetry Schemas. To align with this, the `ActivitySource` and `Meter` classes now support specifying a Telemetry Schema URL during construction. + +This enhancement allows creators of `ActivitySource` and `Meter` instances to define a schema URL for the tracing and metrics data they produce. Consumers of this data can then process it according to the specified schema, ensuring consistency and compatibility. + +Additionally, the update introduces `ActivitySourceOptions`, simplifying the creation of `ActivitySource` instances with multiple configuration options. + +```csharp +namespace System.Diagnostics +{ + public sealed partial class ActivitySource + { + public ActivitySource(ActivitySourceOptions options); + + public string? TelemetrySchemaUrl { get; } + } + + public class ActivitySourceOptions + { + public ActivitySourceOptions(string name); + + public string Name { get; set; } + public string? Version { get; set; } + public IEnumerable>? Tags { get; set; } + public string? TelemetrySchemaUrl { get; set; } + } +} + +namespace System.Diagnostics.Metrics +{ + public partial class Meter : IDisposable + { + public string? TelemetrySchemaUrl { get; } + } + + public partial class MeterOptions + { + public string? TelemetrySchemaUrl { get; set; } + } +} +``` + +## Byte-Level Support in BPE Tokenizer + +The `BpeTokenizer` has been available in the `Microsoft.ML.Tokenizers` library for some time. This [update](https://github.com/dotnet/machinelearning/pull/7425) introduces support for Byte-Level encoding in the BPE tokenizer. + +Byte-Level encoding allows the tokenizer to process vocabulary as UTF-8 bytes, transforming certain characters—for example, spaces are represented as `Ġ`. This enhancement enables the creation of tokenizer objects compatible with models that utilize Byte-Level BPE tokenization, such as the [DeepSeek](https://huggingface.co/deepseek-ai/DeepSeek-R1) model. The [test code](https://github.com/dotnet/machinelearning/blob/1ccbbd4b840e8edc21fcc0fe102e4dfb5ff75eea/test/Microsoft.ML.Tokenizers.Tests/BpeTests.cs#L875) demonstrates how to read a Hugging Face `tokenizer.json` file for DeepSeek and create a corresponding tokenizer object. + +Additionally, this update introduces the `BpeOptions` type, making it easier to configure a BPE tokenizer using multiple options. The new factory method `BpeTokenizer.Create(BpeOptions options)` simplifies the instantiation process: + +```csharp +BpeOptions bpeOptions = new BpeOptions(vocabs); +BpeTokenizer tokenizer = BpeTokenizer.Create(bpeOptions); +``` + +## Deterministic option for LightGBM Trainer in ML.NET + +LightGBM is one of the most popular trainers in ML.NET. In ML.NET we expose a limited set of options to simplify its use. Unfortunately, this meant you could sometimes get non-deterministic results even with the same data and the same random seed. This is due to how LightGBM does its training. + +This [update](https://github.com/dotnet/machinelearning/pull/7415) exposes LightGBM's `deterministic`, `force_row_wise`, and `force_cos_wise` options to allow you to force deterministic training behavior when needed. You can set these options using the appropriate LightGBM options class based on which trainer type you are using. + +```csharp +LightGbmBinaryTrainer trainer = ML.BinaryClassification.Trainers.LightGbm(new LightGbmBinaryTrainer.Options +{ + NumberOfLeaves = 10, + MinimumExampleCountPerLeaf = 2, + UnbalancedSets = false, + Deterministic = true, + ForceRowWise = true +}); +``` + +## Tensor enhancements + +When we initially released Tensor last year we did not provide any non-generic means of interacting with it, even for things that don't really need that generic information such as getting the `Lengths` and `Strides`. This [update](https://github.com/dotnet/runtime/pull/113401) changes the class hierarchy by adding in a non-generic interface that allows you to do those types of operations without needing to worry about generics. It also adds the ability to get/set data in a non-generic why by boxing to type `object`. This does incur a performance penalty and should be avoided when performance is desired, but can make some data access easier when its not required. + +When performing `Slice` operations on a `Tensor`, the initial implementation copied the underlying data. This copy could be avoided by using a `TensorSpan` or `ReadOnlyTensorSpan`, but there were many times that same behavior was desired on `Tensor` as well. This [update](https://github.com/dotnet/runtime/pull/113166) adds that behavior. Now, slice operations on a `Tensor` perform the same as the `TensorSpan` types and no longer do a copy. diff --git a/release-notes/10.0/preview/preview3/runtime.md b/release-notes/10.0/preview/preview3/runtime.md new file mode 100644 index 0000000000..efabb75c3a --- /dev/null +++ b/release-notes/10.0/preview/preview3/runtime.md @@ -0,0 +1,104 @@ +# .NET Runtime in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new in the .NET Runtime in this preview release: + +- [Stack Allocation of Small Arrays of Reference Types](#stack-allocation-of-small-arrays-of-reference-types) +- [Improved Code Layout](#improved-code-layout) + +.NET Runtime updates in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview) documentation + +## Stack Allocation of Small Arrays of Reference Types + +Since .NET 9's release, we have introduced new enhancements to the JIT compiler's ability to stack-allocate objects that don't outlive their creation contexts. Preview 1 expanded the JIT's stack allocation optimization to small, fixed-sized arrays of value types. This means small arrays of types not tracked by the garbage collector (GC) are allocated on the stack instead of the heap when it is safe to do so, reducing GC pressure and unlocking additional optimizations like scalar promotion. However, this optimization would not kick in for examples like the below: + +```csharp +static void Print() +{ + string[] words = {"Hello", "World!"}; + foreach (var str in words) + { + Console.WriteLine(str); + } +} +``` + +The lifetime of `words` is scoped to the `Print` method, and the JIT can already stack-allocate the strings `"Hello"` and `"world!"`. However, the fact that `words` is an array of `strings`, a reference type, would previously stop the JIT from stack-allocating it. Now, the JIT can eliminate every heap allocation in the above example. At the assembly level, the code for `Print` used to look like this: + +```asm +Program:Print() (FullOpts): + push rbp + push r15 + push rbx + lea rbp, [rsp+0x10] + mov rdi, 0x7624BAEF8360 ; System.String[] + mov esi, 2 + call CORINFO_HELP_NEWARR_1_OBJ + mov rdi, 0x762534A02D10 ; 'Hello' + mov gword ptr [rax+0x10], rdi + mov rdi, 0x762534A02D30 ; 'World!' + mov gword ptr [rax+0x18], rdi + lea rbx, bword ptr [rax+0x10] + mov r15d, 2 +G_M2084_IG03: ;; offset=0x0043 + mov rdi, gword ptr [rbx] + call [System.Console:WriteLine(System.String)] + add rbx, 8 + dec r15d + jne SHORT G_M2084_IG03 + pop rbx + pop r15 + pop rbp + ret +``` + +Notice how we call `CORINFO_HELP_NEWARR_1_OBJ` to allocate `words` on the heap. Now, the assembly looks like this: + +```asm +Program:Print() (FullOpts): + push rbp + push r15 + push rbx + sub rsp, 32 + lea rbp, [rsp+0x30] + vxorps xmm8, xmm8, xmm8 + vmovdqu ymmword ptr [rbp-0x30], ymm8 + mov rdi, 0x700BFC98B0C0 ; System.String[] + mov qword ptr [rbp-0x30], rdi + lea rdi, [rbp-0x30] + mov dword ptr [rdi+0x08], 2 + lea rbx, [rbp-0x30] + mov rdi, 0x700C76402D10 ; 'Hello' + mov gword ptr [rbx+0x10], rdi + mov rdi, 0x700C76402D30 ; 'World!' + mov gword ptr [rbx+0x18], rdi + add rbx, 16 + mov r15d, 2 +G_M2084_IG03: ;; offset=0x005A + mov rdi, gword ptr [rbx] + call [System.Console:WriteLine(System.String)] + add rbx, 8 + dec r15d + jne SHORT G_M2084_IG03 + add rsp, 32 + pop rbx + pop r15 + pop rbp + ret +``` + +For more information on stack allocation improvements in the JIT compiler, check out [dotnet/runtime #108913](https://github.com/dotnet/runtime/issues/108913). + +## Improved Code Layout + +The JIT compiler organizes your method's code into basic blocks that can only be entered at the first instruction, and exited via the last instruction. As long as the JIT appends a jump instruction to the end of each block, the program can be laid out in any block order without changing runtime behavior. However, some layouts produce better runtime performance than others: + +- Placing a block before its successor in memory means the JIT does not need to emit a jump instruction to it, reducing code size and the potential for CPU pipelining penalties. +- Placing frequently-executed blocks near each other increases their likelihood of sharing an instruction cache line, reducing instruction cache misses. + +Thus, the JIT has an optimization where it tries to find a block ordering that exhibits the above traits. Previously, the JIT would compute a reverse postorder (RPO) traversal of the program's flowgraph as an initial layout, and then make iterative transformations to it. RPO tends to produce layouts with little branching by placing each block before its successors, unless the block is in a loop. If profile data suggests a block is rarely executed, the JIT then moves it to the end of the method to compact the hotter parts of the method. Finally, the JIT tries to eliminate hot branches by moving the successor of the branch up to its predecessor. + +The challenge of finding a performant block layout stems from the fact that the above goals are frequently orthogonal to each other. For example, in the process of eliminating a hot branch, the JIT might move other hot blocks further away from their successors, reducing hot code density overall. Because each transformation is local in scope, it's difficult to model how one transformation's changes affect another's. To solve this, the JIT now models the block reordering problem as a reduction of the asymmetric [Travelling Salesman Problem](https://en.wikipedia.org/wiki/Travelling_salesman_problem), and implements the [3-opt](https://en.wikipedia.org/wiki/3-opt) heuristic for finding a near-optimal traversal. The "distance" between each block is modeled by the execution count of the preceding block, multiplied by the likelihood that the block branches to its successor. The JIT then searches for a layout with the shortest distance from the method entry to the method exit, frequently yielding a layout with dense hot paths, and relatively short branches. + +To learn more about improvements to code layout in .NET 10, check out [dotnet/runtime #107749](https://github.com/dotnet/runtime/issues/107749). diff --git a/release-notes/10.0/preview/preview3/sdk.md b/release-notes/10.0/preview/preview3/sdk.md new file mode 100644 index 0000000000..463c3387e8 --- /dev/null +++ b/release-notes/10.0/preview/preview3/sdk.md @@ -0,0 +1,103 @@ +# .NET SDK in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new in the .NET SDK in this preview release: + +- [CLI](#cli) + - [The `--interactive` option is now...interactive](#the---interactive-option-is-nowinteractive) + - [Native shell completion scripts](#native-shell-completion-scripts) + - [Support for local SDK installs in `global.json`](#support-for-local-sdk-installs-in-globaljson) +- [Containers](#containers) + - [Console apps can natively create container images](#console-apps-can-natively-create-container-images) + - [Explicitly control the image format of containers](#explicitly-control-the-image-format-of-containers) +- [Testing](#testing) + - [Support for Microsoft Testing Platform in `dotnet test`](#support-for-microsoft-testing-platform-in-dotnet-test) + +.NET SDK updates in .NET 10: + +- [What's new in .NET 10](https://learn.microsoft.com/dotnet/core/whats-new/dotnet-10/overview#net-sdk) documentation + +## CLI + +### The `--interactive` option is now...interactive + +The `--interactive` flag exists on many commands, where it is used to allow or disallow the command to change its behavior based on whether it is running in an interactive terminal or not. The primary use of this flag so far has been to enable commands that use NuGet to use NuGet's credential provider systems to dynamically retrieve credentials during the operation. Today, when using authenticated feeds, if the `--interactive` flag is not set, the command will fail with a message indicating that the command needs to be run with `--interactive` to succeed. This is not a great experience. + +Starting in .NET 10.0.100 preview 3, the `--interactive` flag will be enabled by default for all uses of the CLI that we think are interactive - specifically those where the command output hasn't been redirected, as well as those that are not running in an environment that we think is a CI/CD server. This is similar to how the capability detection for the MSBuild Terminal Logger output works, which we introduced in .NET 8. As a result, most uses of the CLI will not need to specify `--interactive` at all to have user-friendly behaviors. + +In the future, we will likely be keying more interactive behaviors, like prompting, progress bars, and more, off of this flag as well. This will allow us to make the CLI more user-friendly in interactive scenarios, while still allowing for non-interactive scenarios to work as expected. + +If a command should run without any interactive behaviors at all, you can still specify `--interactive false` to disable any interactivity. + +### Native shell completion scripts + +Today the `dotnet` CLI supports tab-completion for many shells, but actually configuring the shell to trigger the tab-completion is so difficult and un-advertised that most users don't know it exists. In .NET 10, we are introducing a new command, `dotnet completions generate [SHELL]`, which will generate tab-completion scripts for many common shells. In addition, for the most common shells the scripts we generate are _native_ to the shell, meaning that they will be able to use the shell's native tab-completion features. This means that you will get the same experience as if you had written the tab-completion script yourself, but without needing to know how to write it. These native scripts should be much faster than the dynamic completion mechanisms we have used in the past. + +In this release, we support the following shells: + +| Shell | Completion type | Additional features | +| ---------- | --------------- | --------------------------------------------------------------- | +| bash | hybrid | - | +| fish | dynamic | - | +| nushell | dynamic | - | +| powershell | hybrid | Descriptions are available for commands, options, and arguments | +| zsh | hybrid | Descriptions are available for commands, options, and arguments | + +In this chart, `dynamic` means that the script will call back to the `dotnet` CLI to get the list of commands, options, and arguments. This is the same mechanism we have used in the past. `hybrid` means that the script will use a combination of static and dynamic completion. For example, in `bash`, we will generate a static script for all of the commands and options, but we will still call back to the `dotnet` CLI to get completions for NuGet package names. This allows us to provide a much faster experience than we have in the past for common operations, while still allowing us to provide a full-featured experience. + +To use the new scripts, you will need to run the `dotnet completions generate [SHELL]` command. This will generate a script that you can source in your shell. For example, to generate a script for `pwsh`, you could add the following to your `$PROFILE`: + +```powershell +dotnet completions script pwsh | out-String | Invoke-Expression -ErrorAction SilentlyContinue +``` + +This will generate a script that will be run every time you start a new PowerShell session. You can also run the command manually to generate the script and source it in your current session. Similar mechanisms can be used for the other supported shells! + +The overall completions-generation mechanisms are pluggable, so if you'd like to see new shells supported or enhancements made to your existing shell's scripts, raise an issue over at dotnet/sdk! + +### Support for local SDK installs in `global.json` + +Today there are two primary ways to install .NET: 'globally' via installers and packages, and 'locally' via extracting zips or tarballs. As a result, it can be hard to manage 'local' SDK installations on a system that primarily uses 'global' installations. In .NET 10, we are introducing a new feature that allows you to specify multiple places to search for SDK installations via your `global.json` file. To use this feature, two new properties are available in `global.json`: + +```json +{ + "sdk": { + "paths": [ ".dotnet", "$host$" ], + "errorMessage": "The .NET SDK could not be found, please run ./install.sh." + } +} +``` + +- `paths`: These are locations to use when searching for a compatible .NET SDK. Paths can be absolute or relative to the location of the `global.json` file. The special value `$host$` represents the location corresponding to the running dotnet executable. +- `errorMessage`: This is a custom error message to use when a compatible SDK cannot be found. + +This new feature can allow for a variety of interesting scenarios - for example trying a new version of the .NET SDK without installing it globally, which would impact the rest of your system. It can also be used to _restrict_ the paths that the SDK will search for installations, which can be useful in CI/CD scenarios where you want to ensure that the SDK is only installed in a specific location. To force this kind of a 'version bubble' you could remove the `$host$` entry from the `paths` array, and then only install the SDK in the specified location. + +While it is possible to manage local installations of the SDK today, one big gap in the end to end experience was that users typically had to set environment variables in order to make IDE tooling aware of the local SDK installation. With the lookup information now codified in global.json, it's now trivial for editors like Visual Studio to use the SDK you intended it to use. + +Note that this feature requires a native component called the `hostfxr` to be installed from SDK version 10.100 preview 3 or later. This component is installed by default with the .NET SDK, but it means that you won't be able to use this feature _to test preview 3_ - look forward to preview 4 and beyond to really see the benefit. + +## Containers + +### Console apps can natively create container images + +Console apps can now create container images via `dotnet publish /t:PublishContainer` without having to set the `` property to `true` in the project file. This brings them into line with the existing behavior for ASP.NET Core apps and Worker SDK apps, which have supported this for a while. If you need to disable this support for any reason, you can set the `` property to `false` in the project file. + +### Explicitly control the image format of containers + +The container images the .NET SDK produces today are either in a Docker-specific format or the more standardized OCI format. Which one our tooling uses is based on two things - if the container is a multi-architecture container, and the format of the base image being used. If the container is a multi-architecture container, we will always use the OCI format. Otherwise, for single-architecture containers, we will use the format of the base image. This means that any container generated using the Microsoft .NET base images will be in the Docker formats. Many users are moving to OCI images across their tooling, and so we have added a new property to the SDK, ``, which allows you to explicitly set the format of the container image. This property can be set to `Docker` or `OCI`, and will override the default behavior. This property is only used when building a container image, and will not affect any other operations. + +## Testing + +### Support for Microsoft Testing Platform in `dotnet test` + +Starting with .NET 10 Preview 3, `dotnet test` now natively supports the [Microsoft.Testing.Platform](https://aka.ms/mtp-overview). You can enable this feature by adding the following configuration to your dotnet.config file (which itself is a [draft specification](https://github.com/dotnet/designs/pull/328) that we would love your feedback on): + +```ini +[dotnet.test:runner] +name = "Microsoft.Testing.Platform" +``` + +> [!NOTE] +> The `[dotnet.test:runner]` part will change to `[dotnet.test.runner]` in Preview 4. + +For more details, refer to [Testing with `dotnet test`](https://learn.microsoft.com/dotnet/core/testing/unit-testing-with-dotnet-test), which explains how Microsoft.Testing.Platform was integrated with `dotnet test` in .NET 9 and earlier versions, and the reasons behind the new `dotnet test` experience. diff --git a/release-notes/10.0/preview/preview3/visualbasic.md b/release-notes/10.0/preview/preview3/visualbasic.md new file mode 100644 index 0000000000..8090117a86 --- /dev/null +++ b/release-notes/10.0/preview/preview3/visualbasic.md @@ -0,0 +1,6 @@ +# Visual Basic updates in .NET 10 Preview 3 - Release Notes + +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 +- [Breaking changes](https://learn.microsoft.com/dotnet/visual-basic/whats-new/breaking-changes) diff --git a/release-notes/10.0/preview/preview3/winforms.md b/release-notes/10.0/preview/preview3/winforms.md new file mode 100644 index 0000000000..b3bc93ec76 --- /dev/null +++ b/release-notes/10.0/preview/preview3/winforms.md @@ -0,0 +1,25 @@ +# Windows Forms in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new in Windows Forms in this preview release: + +- [Bug Fixes](#bug-fixes) +- [Engineering Health](#engineering-health) + +## Windows Forms updates in .NET 10 + +- [What's new in Windows Forms in .NET 10](https://learn.microsoft.com/dotnet/desktop/winforms/whats-new/net100) documentation. +- [Issues List for Windows Forms in .NET 10 Preview 3](https://github.com/dotnet/winforms/issues?q=is%3Aissue%20milestone%3A%2210.0%20Preview3%22%20) + +## Bug Fixes + +Addressed various bug fixes including: + +- Fixing a regression relating to colors in the `DrawListViewColumnEditorEventArgs` +- Addressing an issue where NVDA screen reader did not render a focus rectangle when reading a the contnet of a property in the `PropertyGrid` control. +- Fixing an issue with `ToolStrip` control when using keyboard navigation with multiple `ToolStrip` controls present on the form. + +## Engineering Health + +- Continued work towards the consolidation of Clipboard code with WPF. +- Updated DemoConsole test application to accurately demonstrate and test usage of types in the `System.Windows.Forms.Design` namespace. +- Removed deprecated .NET runtime and unnecessary package references, and conducted style cleanups to address warnings and improve code quality. diff --git a/release-notes/10.0/preview/preview3/wpf.md b/release-notes/10.0/preview/preview3/wpf.md new file mode 100644 index 0000000000..cb99040a56 --- /dev/null +++ b/release-notes/10.0/preview/preview3/wpf.md @@ -0,0 +1,44 @@ +# WPF in .NET 10 Preview 3 - Release Notes + +Here's a summary of what's new with WPF in this preview release: + +- [Performance Improvements](#performance-improvements) +- [Fluent Style Changes](#fluent-style-changes) +- [Bug Fixes](#bug-fixes) +- [Miscellaneous Changes](#miscellaneous-changes) + +WPF updates in .NET 10: + +- [High-level what's new in WPF with .NET 10.](https://learn.microsoft.com/dotnet/desktop/wpf/whats-new/net100) + +## Performance Improvements + +Enhanced performance by optimizing cache operations, array handling, and migrating font collection loader to managed code. + +## Fluent Style Changes + +Introduced new Fluent styles for controls, such as: + +- `NavigationWindow` +- `Frame` +- `ToolBar` +- `ResizeGrip` +- `GroupBox` +- `Hyperlink` +- `GridSplitter` +- `Thumb.` + +Fixed elevation border brushes for various controls and corrected missing `RecognizesAccessKey` property. + +## Bug Fixes + +- Addressed several bugs including memory leaks, control behavior anomalies, and property recognition issues. +- Fixed faulty caching of `LinearGradientBrushes` when `RelativeTransform` was being used along with `Absolute` mapping mode. + +## Miscellaneous Changes + +Code Cleanup and Refactoring + +- Conducted extensive code cleanups, including syntax standardization and argument clarity, to improve code readability and maintainability. +- Established code-coverage for WPF, added functionality tests for `Clipboard` and resolved issues with `DependencyProperty` tests. +- Incorporated design-time markup compilation to facilitate smoother development workflows.