After the holidays, the first service release (SR1) of .NET MAUI on .NET 8 was released today. This release is published as a NuGet package rather than a workload update as it tries to address many of the issues faced with the GA release. The changelog is available here. So instead of doing an dotnet workload update, follow the steps given below to pull the latest version so the change is minimal and future-proof for the existing projects.
Both the official template and the All-in-One template pack refer to the version of .NET MAUI NuGet packages via the MSBuild property MauiVersion. This can be seen in the package reference node in the project file. Usually, this property is set by the Targets file available as part of the workload.

As already explained, the service releases are published only as a NuGet package for now, the version attribute of the package reference nodes has to be manually updated. But this is cumbersome if it’s a multi-project solution.
Instead, to make it error-free and future-proof, define the MauiVersion property with the service release version in the project file or in the Directory.Packages.props, if using the NuGet CPM feature. Refer to the screenshots below.
| Service Release | Version # |
|---|---|
| SR1 | 8.0.6 |
| SR2 | 8.0.7 |
| SR3 | 8.0.10 |
| SR3.1 | 8.0.14 |
| SR4 | 8.0.20 |
| SR4.1 | 8.0.21 |
| SR5 | 8.0.40 |
| SR6 | 8.0.60 |
| SR7 | 8.0.70 |
| SR7.1 | 8.0.71 |
| SR8 | 8.0.80 |
| SR8.2 | 8.0.82 |
| SR8.3 | 8.0.83 |
| SR9 | 8.0.90 |
| SR9.1 | 8.0.91 |
| SR9.2 | 8.0.92 |
| SR9.3 (latest) | 8.0.93 |
Project File:
Pro Tip: As service releases are now distributed as NuGet packages, updating the MauiVersion property dynamically as shown below is recommended to facilitate easier upgrades.
It is not feasible to accomplish floating package versions while utilizing NuGet CPM, as this format has yet to be supported.
<MauiVersion>8.*</MauiVersion>

Directory.Packages.props:

If you’re working on a multi-project solution that uses MAUI on more than one project, then follow the same technique as CPM by creating a Directory.Packages.props file at the solution level and defining only this MauiVersion property as shown below instead of defining it in each of the project files which is definitely an overhead.
Sample shown for .NET MAUI 8 SR1:
Update the value to the corresponding service release version #; alternatively, use the dynamic version (8.*) to always retrieve the latest stable version.
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
<MauiVersion>8.0.6</MauiVersion>
</PropertyGroup>
</Project>
PS: Once this is released as a regular workload update, comment out this MauiVersion property node so that it refers to its value from the refreshed Targets file as usual.
For newer projects, will publish an updated version of the All-in-One templates pack later today with this property included so that manual change is unnecessary. v5.0.0 is published. Update now.
Happy coding. Stay connected as we continue to learn and share the experiences from this exciting journey of being a .NET developer.
One reply on “.NET MAUI 8 Service Releases”
[…] .NET MAUI 8 SR1 (Vijay Anand E G) […]