Installation

NuGet packages

Core renderer:

dotnet add package Svg.Skia

Uno control package:

dotnet add package Svg.Controls.Skia.Uno

Avalonia controls backed by Skia:

dotnet add package Svg.Controls.Skia.Avalonia

Avalonia controls backed by the Avalonia drawing stack:

dotnet add package Svg.Controls.Avalonia

General-purpose Skia controls for Avalonia:

dotnet add package Skia.Controls.Avalonia

Source generator:

dotnet add package Svg.SourceGenerator.Skia

Converter as a global tool:

dotnet tool install -g Svg.Skia.Converter

Target frameworks

Most runtime packages in this repository multi-target:

  • netstandard2.0
  • net461
  • net6.0
  • net8.0
  • net10.0

The generator and codegen packages target netstandard2.0.

Repository prerequisites

The repository uses git submodules for upstream SVG sources and external test data. After cloning:

git submodule update --init --recursive

The local docs pipeline also uses a .NET tool manifest for Lunet:

dotnet tool restore

The standalone Uno sample app additionally needs Uno workloads configured through uno-check, but the default repository solution does not:

uno-check --target desktop --target web --target android --target ios

Project workflow commands

Formatting:

dotnet format --no-restore

Build:

dotnet build Svg.Skia.slnx -c Release

Tests:

dotnet test Svg.Skia.slnx -c Release

Docs:

./build-docs.sh
./serve-docs.sh