Additional setup for Linux
The Uno Platform for Linux current comes with a rendering backend using Skia, and a Shell support with Gtk3.
It is possible to develop :
- Using Visual Studio on Windows directly, or using the Windows Subsystem for Linux.
- Using VS Code under Linux
Setting for Windows and WSL
Using VS 2019 16.6 or later:
- Install the Visual Studio WSL Extension
- In VS 2019 16.8 or earlier through the marketplace
- In VS 2019 16.9 Preview 1 and later through the Visual Studio installer by installing the individual component named .NET Core Debugging with WSL 2
- Install WSL Ubuntu 18.04 or later
- Install the prerequisites for Linux mentioned in the next section, in your installed distribution using the Ubuntu shell
- Install vcXsrv, an X11 server for Windows
- You'll need to start the server in "Multiple windows" mode, starting with "no client" mode.
- Install the GTK3 runtime.
- Using the WSL 1 mode is generally best for performance and ease of use for the X11 server
- You can switch between versions of a distribution using
wsl --set-version "Ubuntu-20.04" 1
- You can list your active distributions with
wslconfig /l
and change the default withwslconfig /s "Ubuntu-20.04"
- You can change the used distribution with the
"distributionName": "Ubuntu-20.04"
launch profile parameter of the VS WSL 2 Extension. - If you have a insider preview of Windows 10, you may use the wayland server.
- If you still want to use WSL 2 anyways, you can try following those steps.
- You can switch between versions of a distribution using
- Install the
dotnet new
templates:dotnet new -i Uno.ProjectTemplates.Dotnet::3.1-dev*
- Then create a new project using:
dotnet new unoapp -o MyUnoApp
Now let's run the application:
- Open the solution using Visual Studio
- In the debugger menu, next to the green arrow, select WSL 2
- In the launch profile file, set:
"environmentVariables": {
"DISPLAY": ":0",
},
- Start the debugger session
- Visual Studio may ask you to install .NET Core 3.1, press OK and let the installation finish, then restart the debugging session.
Setting up for Linux
Using Ubuntu 18.04 or later:
- Install GTK3:
sudo apt update sudo apt-get install gtk+3.0
- Install dotnet core 3.1
echo "Installing .NET Core" wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo add-apt-repository universe sudo apt-get -y install apt-transport-https sudo apt-get update sudo apt-get -y install dotnet-sdk-3.1 sudo apt-get -y install dotnet-sdk-5.0
Using Ubuntu 20.04 or later:
- Install GTK3:
sudo apt update sudo apt install libgtk-3-dev
- Install dotnet core 3.1 and 5.0
echo "Installing .NET Core" wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt-get update; \ sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-3.1 && \ sudo apt-get install -y dotnet-sdk-5.0
Install the templates and create the application
- Install the
dotnet new
templates:dotnet new -i Uno.ProjectTemplates.Dotnet
- Then create a new project using:
dotnet new unoapp -o MyUnoApp
Now let's run the application:
- Open the folder created by
dotnet new
- In the terminal, build and run the application:
cd MyUnoApp.Skia.Gtk dotnet run
Setting up for ArchLinux 5.8.14 or later / Manjaro:
- Update system and packages
pacman -Syu
- Install the necessary dependencies
sudo pacman -S gtk3 dotnet-targeting-pack dotnet-sdk dotnet-host dotnet-runtime mono python mono-msbuild ninja gn aspnet-runtime
- Install the
dotnet new
templates:dotnet new -i Uno.ProjectTemplates.Dotnet
- Then create a new project using:
dotnet new unoapp -o MyUnoApp
Run the GTK based application:
- Open the folder created by
dotnet new
- In the terminal, build and run the application:
cd MyUnoApp.Skia.Gtk dotnet run
Run the WebAssembly head with:
bash cd .. cd MyUnoApp.Wasm dotnet run
turns on the browser and type
http://localhost:5000/
Getting Help
If you have questions about Uno Platform support for Linux, please visit our Discord - #uno-platform channel or StackOverflow where our engineering team and community will be able to help you.