Configuring Uno Check

Running Uno.Check in a CI environment

It is possible to run Uno.Check to setup your build environment in a repeatable way by using the following commands:

dotnet tool install --global Uno.Check --version 1.29.4
uno-check -v --ci --non-interactive --fix --skip vswin --skip androidemulator --skip androidsdk

Pinning uno.check to a specific version will allow to keep a repeatable build over time, regardless of the updates done to Uno Platform or .NET. Make sure to regularly update to a more recent version of Uno.Check.

Tip

You can use dotnet package search uno.check to search for the latest version of uno.check.

Running without elevation on Windows

In restricted environments, it may be required to run uno-check to determine what needs to be installed without privileges elevation.

In order to do so, use the following command:

cmd /c "set __COMPAT_LAYER=RUNASINVOKER && uno-check"

Command line arguments

The following command line arguments can be used to customize the tool's behavior.

--target Choose target platforms

Uno Platform supports a number of platforms, and you may only wish to develop for a subset of them. By default, the tool runs checks for all supported platforms. If you use the --target argument, it will only run checks for the nominated target or targets.

So, for example, the following will only check your environment for web and Linux development:

uno-check --target wasm --target linux
Note

When specifying multiple target platforms, each element must be preceded by --target. It is not possible to list multiple values without this prefix.

Supported target platforms and their --target values:

Target Platform Input Values
WebAssembly web, webassembly, wasm
iOS ios
Android android, droid
macOS macos
SkiaDesktop skiadesktop, skia, linux
WinAppSDK winappsdk, wasdk
Windows windows, win32desktop, win32
All Platforms all

-m <FILE_OR_URL>, --manifest <FILE_OR_URL> Manifest File or Url

The manifest file is used by the tool to fetch the latest versions and requirements. The default manifest is hosted at: https://raw.githubusercontent.com/unoplatform/uno.check/main/manifests/uno.ui.manifest.json

Use this option to specify an alternative file path or URL to use.

uno-check --manifest /some/other/file

-f, --fix Fix without prompt

You can try using the --fix argument to automatically enable solutions to run without being prompted.

uno-check --fix

-n, --non-interactive Non-Interactive

If you're running on CI, you may want to run without any required input with the --non-interactive argument. You can combine this with --fix to automatically fix without prompting.

uno-check --non-interactive

--pre, --preview, -d, --dev Preview Manifest feed

This uses a more frequently updated manifest with newer versions of things more often. If you use the pre-release versions of Uno.UI NuGet packages, you should use this flag.

The manifest is hosted by default here: uno.ui-preview.manifest.json

uno-check --pre

--pre-major, --preview-major

This generally uses the preview builds of the next major version of .NET available.

The manifest is hosted by default here: uno.ui-preview-major.manifest.json

uno-check --pre

--ci Continuous Integration

Uses the dotnet-install powershell / bash scripts for installing the dotnet SDK version from the manifest instead of the global installer.

uno-check --ci

-s <ID_OR_NAME>, --skip <ID_OR_NAME> Skip Checkup

Skips a checkup by name or ID as listed in uno-check list.

Note

If any other checkups depend on a skipped checkup, they will be skipped too.

uno-check --skip openjdk --skip androidsdk

list List Checkups

Lists possible checkups in the format: checkup_id (checkup_name). These can be used to specify --skip checkup_id and -s checkup_name arguments.

config Configure global.json and NuGet.config in Working Dir

This allows you to quickly synchronize your global.json and/or NuGet.config in the current working directory to utilize the values specified in the manifest.

Arguments:

  • --dotnet or --dotnet-version: Use the SDK version in the manifest in global.json.
  • --dotnet-pre true|false: Change the allowPrerelease value in the global.json.
  • --dotnet-rollForward <OPTION>: Change the rollForward value in global.json to one of the allowed values specified.
  • --nuget or --nuget-sources: Adds the nuget sources specified in the manifest to the NuGet.config and creates the file if needed.

Example:

uno-check config --dev --nuget-sources --dotnet-version --dotnet-pre true