Skip to content

Triaging: Verify .NET MAUI Issues & Reproductions

Shane Neuville edited this page Mar 11, 2025 · 3 revisions

How to Verify Issues & Reproductions

1. Install and Set Up Visual Studio

  1. 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.

    Visual Studio Installer

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

    .NET MAUI Workload

  3. Verify your installation by creating a new .NET MAUI project and running it. For guidance, refer to the official documentation.

2. Identify an Issue to Verify

  1. Find an issue to verify. See How to Triage.
  2. Download the reproduction sample from the issue. For security reasons, always use a Dev Box or virtual machine.

3. Update and Prepare the Project for Testing

  1. 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-androidnet8.0-ios;net8.0-android.
      • Note: There may be multiple TargetFrameworks tags.
    • 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.
  2. For older issues, follow this guide (Windows only) to remove Assets references.

  3. Ensure the project file resembles a new .NET MAUI project.

4. Test the Issue and Report Findings

  1. Reproduce the issue in the updated project.
  2. If the issue persists:
    • Reupload the updated project to the issue.
    • Add any new findings.

How to Triage

  1. Find issues to triage using these queries:

  2. [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."
  3. 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
  4. If the issue relates to CollectionView on iOS, test whether it also reproduces with CollectionView2. If so, add the label collectionview-cv2.

  5. When testing for regressions, add the appropriate regression version label from this list.

  6. 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.

  7. 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 and s/try-latest-version labels.
    • If the issue DOES reproduce:
      • Add s/triaged and s/verified labels.

How to Verify Regression & Migration Issues

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.

1. Marking a Regression

  • Add the i/regression label if:
    1. The user states that it worked in a previous version.
    2. You confirm that the bug was introduced in a specific version.
    3. 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 to 8.0.3 to determine the first broken version.
    4. 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.
    5. 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!

Clone this wiki locally