-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Triaging: Verify .NET MAUI Issues & Reproductions
-
Make sure that you have installed the latest preview version of Visual Studio. This can be found here for first install. If you already have Visual Studio installed, go to the Visual Studio Installer and update your instance from there. Note: Please do NOT update anything .NET MAUI related through the command-line. This might result in an environment that does not work properly and is hard to recover. Note: The current Preview version may not support projects targeting older versions of .NET. Don't worry about validating the reproduction against the unsupported version. Just update the project to the current most supported version.

1.1 During installation make sure that the .NET MAUI workload is checked, see below.

1.2 For verification, make sure that you can create a new .NET MAUI project and run it. For more instructions please have a look at our documentation.
-
Find an issue that you need to verify. See below.
-
Download the reproduction sample from the issue. for security reasons please do this in a Dev Box or virtual machine 3.1 Open the
csprojfile of the .NET MAUI project and check for the following things:- Check if the values in the
TargetFrameworkstag are set to the current stable version (i.e.net8.0) instead of the previous version (i.e.net7.0). We want to test against the latest available (public) version. If the value is not currently stable version (i.e.net8.0), simply update it. For example:net7.0-ios;net7.0-androidwill becomenet8.0-ios;net8.0-android. Note: there may be more than 1TargetFrameworkstags - Check to see if there is an explicit package reference to
Microsoft.WindowsAppSDK. If so, remove this. You will be looking for something like<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.2.230313.1" />. The value inVersioncan be different. Regardless, remove this tag entirely, as this is added through .NET MAUI already. - Update all the NuGet packages that might be referenced. This is probably not likely but might cause unexpected results. Check for any
PackageReferencetags in thecsprojfile. Those are NuGet packages. The easiest way to update them all at once is to load it in Visual Studio; instructions for that can be found here.
3.2 For older issues, it might be necessary to follow this on Windows (only the top part about removing the
Assetsreferences).3.3 Ultimately, the project file should look like an unmodified new project
csprojfile. You can find the current version in our source here. You can, of course, also create your own version by creating a new .NET MAUI project on your own machine and compare with that. - Check if the values in the
-
Try and reproduce/verify if the behavior in the issue still occurs in this updated version of the project. If yes, please reupload the project to the issue along with any relevant information you might have uncovered.
-
Find issues from this Regression issues query (P0) and New issues query (P1).
- Start with Regression issues first.
-
[Optional] Update the bug template for missing information, if any:
- Put area label on bugs that don’t have it. Labels are described here. Do the best you can, no worries if it's not 100% right.
- Test on the 4 platforms – iOS, Android, Windows & Mac Catalyst and update the results for them in the bug.
- No need to update information for “last working build”
-
Test on the latest publicly available Visual Studio (see above).
- If there is a repro project already, update it to the latest version as described above and test. Otherwise, create a new project and test.
- Add a comment with your results; attach your updated project.
- If it doesn’t repro, add
s/triagedands/try-latest-versionlabels to the issue. - If it does repro, add
s/triagedands/verifiedlabels to the issue.
If the bug repro in the latest version and the user mentions Yes, this used to work in .NET MAUI, then we need to verify if that is a regression and find the bug-injected version.
- Add
i/regressionLabel:- Based on "the last version that worked well" provided by the user, verify that the bug did not exist before and find bug-injected version
- If the user does not provide the last version that worked well, please verify the previous versions back to the GA release. For example, if the user says it's broken on 8.0.40, verify back to 8.0.3 in order to locate what version it broke on.
- If it still repro on the latest GA release, switch project to the previous version (i.e NET 7). if that worked well, add
i/regressionlabel, and comment it is a regression from the last major release (i.e..NET 7to.NET 8).
- Add
potential-regressionLabel- If validation is blocked and cannot complete the validation independently, please add
potential-regressionfirst.
- If validation is blocked and cannot complete the validation independently, please add
- Not regression: If the bug also repro on
.NET 7, we should remove the regression label.