Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Service Releases - Early Access + General Availability #20159

Open
Redth opened this issue Jan 25, 2024 · 1 comment
Open

Service Releases - Early Access + General Availability #20159

Redth opened this issue Jan 25, 2024 · 1 comment
Labels
Announcement area-setup Installation, setup, requirements, maui-check, workloads, platform support
Milestone

Comments

@Redth
Copy link
Member

Redth commented Jan 25, 2024

In .NET 8 you can now acquire updated releases of the MAUI Controls library independently of the .NET MAUI workload. This enables all developers to quickly validate nightly builds, pull request builds, and service releases without disturbing the globally installed workload.

The MAUI Controls libraries include the multi-platform abstractions of controls, services, common layouts, single project support, and other related services that most developers commonly use when developing a .NET MAUI application. The .NET MAUI workload by comparison additionally includes the SDKs, build tools, and other foundational libraries such as Android, iOS, and macOS.

Services Releases - Early Access

Candidate service release builds of the MAUI Controls libraries are first published to NuGet.org prior to being available in the .NET MAUI workload and Visual Studio. As long as no significant regressions are identified during this phase, the release will be promoted to the .NET MAUI workload and Visual Studio to be available to all developers in the next scheduled release.

To get early access to a service release, update your package references to the new version. For example, if 8.0.6 is the new service release version on NuGet.org, you would change your project to look like this:

<ItemGroup>
  <PackageReference Include="Microsoft.Maui.Controls" Version="8.0.6" />
  <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="8.0.6" />
</ItemGroup>

To revert back to the installed workload version, change the package references version back to $(MauiVersion) which will use the version implicitly from the workload you have installed:

<ItemGroup>
  <PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
  <PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
</ItemGroup>

NOTE: When using Early Access Candidate builds or Nightly builds by updating your Package References, your globally installed workload will be unchanged. If you run dotnet workload list you will still see the current MAUI workload version (eg: 8.0.3 even if you have 8.0.6 in your Package References) installed globally through CLI and/or Visual Studio.

Service Releases - General Availability

Once the service release is promoted to the .NET MAUI workload and Visual Studio, you can install the latest release via the dotnet CLI (eg: dotnet workload update) or Visual Studio (whichever method suits your environment).

You may now revert your package reference versions to $(MauiVersion) if you previously changed it to use a specific early access (or nightly) version.

NOTE: Once a service release is promoted to the .NET MAUI workload and Visual Studio and you have installed those updates, you will see that version listed in the dotnet workload list output.

Nightly Builds

Please see our Nightly Builds Wiki Page for more information about adding the nightly NuGet feed to easily install and test these builds.

Downgrading

In some cases it may also be possible to downgrade the NuGet package version to an older version than the currently installed workload. You can try this by setting the MauiVersion property in your app's project file to a specific version:

<PropertyGroup>
  <MauiVersion>8.0.21</MauiVersion>
</PropertyGroup>

NOTE: This isn't always possible as in some cases MAUI may use a newer version of Android and/or iOS workloads which is no longer compatible with an older NuGet package version of MAUI.

@hansmbakker
Copy link

Thank you!
Will there also be a way to try other parts of the workload, to try the solutions for issues like dotnet/runtime#96804?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Announcement area-setup Installation, setup, requirements, maui-check, workloads, platform support
Projects
None yet
Development

No branches or pull requests

4 participants