Skip to content

[Breaking change]: Workload sets enabled by default for .NET 10 #48179

@marcpopMSFT

Description

@marcpopMSFT

Description

Starting in 8.0.4xx, customers could specific a workload set when installing a workload like maui or wasm-tools: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-workload-sets

This allows customers control over which workload set they want to be on and ensures that all workloads update together with compatible and tested versions.

Version

.NET 10 Preview 4

Previous behavior

Previously, when installing or updating .NET workloads, the .NET SDK would search all your feeds for the latest workload manifest for each workload independently. You could end up with two workload versions that were not compatible.

New behavior

Now the .NET SDK looks first for the latest workload set on your feeds, download that first, and then use that to determine the matching workloads versions to install. Workload sets will be released on release day with each .NET SDK release and have versions that match the .NET SDK. For example,a 10.0.103 workload set will release on the same day as the 10.0.103 .NET SDK. Additionally, workload sets will also be released whenever an individual workload needs to release separate from the .NET SDK schedule. For the same example, a 10.0.103.1 workload set would be released if Android required an update between .NET SDK releases.

Type of breaking change

  • Binary incompatible: Existing binaries might encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code might require source changes to compile successfully.
  • Behavioral change: Existing binaries might behave differently at run time.

Reason for change

This allows for a more consistent and tested workloads experience.

Recommended action

No action should be required. Customers can switch back to the prior behavior by using dotnet workload config --update-mode manifests. Only use this if you need to install a new workload version that hasn't been released yet in a workload set.

Feature area

SDK

Affected APIs

No response

Metadata

Metadata

Assignees

Labels

breaking-changeIndicates a .NET Core breaking change

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions