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

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

    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.

  2. Find an issue that you need to verify. See below.

  3. Download the reproduction sample from the issue. for security reasons please do this in a Dev Box or virtual machine 3.1 Open the csproj file of the .NET MAUI project and check for the following things:

    • Check if the values in the TargetFrameworks tag 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-android will become net8.0-ios;net8.0-android. Note: there may be more than 1 TargetFrameworks tags
    • 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 in Version can 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 PackageReference tags in the csproj file. 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 Assets references).

    3.3 Ultimately, the project file should look like an unmodified new project csproj file. 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.

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

How to triage

  • 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/triaged and s/try-latest-version labels to the issue.
    • If it does repro, add s/triaged and s/verified labels to the issue.

How to verify Regression & Migration issues:

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/regression Label:
    1. 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
    2. 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.
    3. 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/regression label, and comment it is a regression from the last major release (i.e. .NET 7 to .NET 8).
  • Add potential-regression Label
    1. If validation is blocked and cannot complete the validation independently, please add potential-regression first.
  • Not regression: If the bug also repro on .NET 7, we should remove the regression label.
Clone this wiki locally