-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
.csproj
file of the .NET MAUI project and check for the following:-
Ensure the
TargetFrameworks
values 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
TargetFrameworks
tags.
- 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
PackageReference
tags 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
Assets
references. -
Ensure the project file resembles a new
.NET MAUI
project.- 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-bug
s/duplicate
external
s/needs-info
s/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/triaged
ands/try-latest-version
labels.
- Add
-
If the issue DOES reproduce:
- Add
s/triaged
ands/verified
labels.
- 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/regression
label 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.3
to 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!