Get Started on Visual Studio 2022

This getting started will guide you through the creation of an Uno Platform App using C# and .NET, based in the WinUI 3 XAML.

Tip

This guide covers development on Windows using Visual Studio. If you want to use another environment or IDE, see our general getting started.

Important

To use Xamarin (as opposed to .NET 6 Mobile) and Visual Studio 2019, follow this guide.

Prerequisites

To create Uno Platform applications you will need Visual Studio 2022 17.3 or later:

  1. ASP.NET and web workload installed, along with .NET 6.0 (for WebAssembly development)

    visual-studio-installer-web

  2. .NET Multi-platform App UI development workload installed.

    visual-studio-installer-dotnet-mobile

  3. .NET desktop development workload installed.

    visual-studio-installer-dotnet

  4. Universal Windows Platform workload installed.

    visual-studio-installer-uwp

Important

To build Xamarin-based projects in Visual Studio 2022, in Visual Studio's installer Individual components tab, search for Xamarin and select Xamarin and Xamarin Remoted Simulator. See this section on migrating Xamarin projects to .NET 6,

Note

For information about connecting Visual Studio to a Mac build host to build iOS apps, see Pairing to a Mac for Xamarin.iOS development.

Finalize your environment

  1. Open a command-line prompt, Windows Terminal if you have it installed, or else Command Prompt or Windows Powershell from the Start menu.

  2. a. Install the tool by running the following command from the command prompt:

    dotnet tool install -g uno.check
    

    b. To update the tool, if you already have an existing one:

    dotnet tool update -g uno.check
    
  3. Run the tool from the command prompt with the following command:

    uno-check
    
  4. Follow the instructions indicated by the tool

You can find additional information about uno-check here.

Install the Solution Templates

  1. Launch Visual Studio 2022, then click Continue without code. Click Extensions -> Manage Extensions from the Menu Bar.

  2. In the Extension Manager expand the Online node and search for Uno, install the Uno Platform Solution Templates extension or download it from the Visual Studio Marketplace, then restart Visual Studio.

Create an application

To create an Uno Platform app:

  1. Create a new C# solution using the Uno Platform App template, from Visual Studio's Start Page

  2. Choose the list of targets platforms you want to be generated

    Tip

    If you do not select platforms, you still can add them later.

    visual-studio-installer-web

  3. Wait for the projects to be created, and their dependencies to be restored

  4. To debug the Windows head:

    • Right click on the MyApp.Windows project, select Set as startup project
    • Select the Debug|x86 configuration
    • Press the MyApp.Windows button to deploy the app
    • If you've not enabled Developer Mode, the Settings app should open to the appropriate page. Turn on Developer Mode and accept the disclaimer.
  5. To run the WebAssembly (Wasm) head:

    • Right click on the MyApp.Wasm project, select Set as startup project
    • Press the MyApp.Wasm button to deploy the app
  6. To debug for iOS:

    • Right click on the MyApp.Mobile project, select Set as startup project

    • In the "Debug toolbar" drop down, select framework net6.0-ios:

      visual-studio-installer-web

    • Select an active device

  7. To debug the Android platform:

    • Right click on the MyApp.Mobile project, select Set as startup project
    • In the Debug toolbar drop down, select framework net6.0-android
    • Select an active device in "Device" sub-menu

You're all set! You can now head to our tutorials on how to work on your Uno Platform app.

Note

Debugging either the macOS and macCatalyst targets is not supported from Visual Studio on Windows.

Troubleshooting Installation Issues

You may encounter installation and/or post-installation Visual Studio issues for which workarounds exist. Please see Common Issues we have documented.

Getting Help

If you continue experiencing issues with Uno Platform, please visit our GitHub Discussions or Discord - #uno-platform channel where our engineering team and community will be able to help you.

Further reading