- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1.9k
 
Triaging: Verify .NET MAUI Issues & Reproductions
- 
Ensure you have the latest preview version of Visual Studio installed. Download it here if it's your first time installing. If you already have Visual Studio, update it through the Visual Studio Installer.
Important Notes:
- Do NOT update anything .NET MAUI-related via the command line. This may lead to an unstable environment that is difficult to recover.
 - The current Preview version may not support older .NET versions. Instead of testing against unsupported versions, update the project to the latest supported version.
 

 - 
During installation, ensure the .NET MAUI workload is selected.

 - 
Verify your installation by creating a new .NET MAUI project and running it. For guidance, refer to the official documentation.
 
- Find an issue to verify. See How to Triage.
 - Download the reproduction sample from the issue. For security reasons, always use a Dev Box or virtual machine.
 
- 
Open the
.csprojfile of the .NET MAUI project and check for the following:- 
Ensure the
TargetFrameworksvalues are set to the current stable version (e.g.,net8.0).- If using an older version (e.g., 
net7.0), update it to the latest stable release. - Example: 
net7.0-ios;net7.0-android→net8.0-ios;net8.0-android. - 
Note: There may be multiple 
TargetFrameworkstags. 
 - If using an older version (e.g., 
 - 
Remove any explicit references to
Microsoft.WindowsAppSDK, if present. Look for:<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.2.230313.1" />
- The version number may vary. Remove this tag entirely, as .NET MAUI already includes it.
 
 - 
Update all NuGet packages if applicable.
- Check for 
PackageReferencetags in.csproj. - The easiest way to update them is via Visual Studio; follow these instructions.
 
 - Check for 
 
 - 
 - 
For older issues, follow this guide (Windows only) to remove
Assetsreferences. - 
Ensure the project file resembles a new
.NET MAUIproject.- Compare it with a fresh project or reference this template.
 
 
- Reproduce the issue in the updated project.
 - If the issue persists:
- Reupload the updated project to the issue.
 - Add any new findings.
 
 
- 
Find issues to triage using these queries:
- Regression Issues (P0)
 - New Issues (P1)
 - Prioritize Regression Issues first.
 
 - 
[Optional] Update the bug report template:
- Assign an area label (refer to label guide).
 - Test on all four platforms: iOS, Android, Windows, and Mac Catalyst.
 - You can skip updating the "last working build."
 
 - 
If an issue falls under any of these labels and cannot be verified, add it to the “Need Confirmation” table in the daily report and ask Gerald for a review:
s/not-a-bugs/duplicateexternals/needs-infos/needs-repro
 - 
If the issue relates to CollectionView on iOS, test whether it also reproduces with
CollectionView2. If so, add the labelcollectionview-cv2. - 
When testing for regressions, add the appropriate regression version label from this list.
 - 
For performance issues, validate slow performance by deploying the app in release mode. If the issue persists in 9.0.40, add the label
t/perf/9.0.40. - 
Test using the latest publicly available Visual Studio.
- If a repro project exists, update it and test.
 - If no repro project exists, create a new one.
 - Comment on your results and attach the updated project.
 - 
If the issue does NOT reproduce:
- Add 
s/triagedands/try-latest-versionlabels. 
 - Add 
 - 
If the issue DOES reproduce:
- Add 
s/triagedands/verifiedlabels. 
 - Add 
 
 
If a user reports an issue that worked in a previous version of .NET MAUI, determine whether it is a regression and identify when the bug was introduced.
- Add the 
i/regressionlabel if:- The user states that it worked in a previous version.
 - You confirm that the bug was introduced in a specific version.
 - If the user did not specify a working version:
- Test backward from the reported version to the last General Availability (GA) release.
 - Example: If broken in 
8.0.40, test back to8.0.3to determine the first broken version. 
 - If the bug is present in the latest GA release:
- Test with the previous major version (e.g., switch from .NET 8 to .NET 7).
 - If it worked in the previous major version, label it as a regression.
 
 - Once you've identified what version regressed the issue add the "regressed-in-XXX" label to indicate what version regressed.
 
 
This guide ensures consistency and clarity in verifying, triaging, and testing .NET MAUI issues. Let us know if you encounter any edge cases requiring additional documentation!