本篇文章简要介绍如何在macOS上编译Avalonia。编译的步骤主要是参考了github.com/AvaloniaUI/…和github.com/AvaloniaUI/…。本篇文章以macOS 14.1.2为例讲解Avalonia在macOS上的源代码编译过程。
准备工作
编译源码的机器需要提前安装必要的工具和SDK。括号里是我编译源代码时用到的版本。
源代码编译
准备源代码
在git shell里执行以下命令
git clone https://github.com/AvaloniaUI/Avalonia.git
cd Avalonia
git checkout 11.0.6
git submodule update --init
安装workload
dotnet workload install wasm-tools wasm-experimental
安装Tizen Workload
curl https://raw.githubusercontent.com/Samsung/Tizen.NET/main/workload/scripts/workload-install.sh -o workload-install.sh
sudo bash workload-install.sh
编译
安装Nuke
dotnet tool install --global Nuke.GlobalTool --version 6.2.1
编译源码
nuke --target Compile --configuration Release
运行测试
nuke --target RunTests --configuration Release
生成nupkg
nuke --target Package --configuration Release
编译结果
编译的最终输出就是一些nupkg文件
- Avalonia.11.0.6.nupkg
- Avalonia.Browser.11.0.6.nupkg
- Avalonia.Browser.Blazor.11.0.6.nupkg
- Avalonia.Controls.ColorPicker.11.0.6.nupkg
- Avalonia.Controls.DataGrid.11.0.6.nupkg
- Avalonia.Controls.ItemsRepeater.11.0.6.nupkg
- Avalonia.Desktop.11.0.6.nupkg
- Avalonia.Diagnostics.11.0.6.nupkg
- Avalonia.Direct2D1.11.0.6.nupkg
- Avalonia.Fonts.Inter.11.0.6.nupkg
- Avalonia.FreeDesktop.11.0.6.nupkg
- Avalonia.Headless.11.0.6.nupkg
- Avalonia.Headless.NUnit.11.0.6.nupkg
- Avalonia.Headless.Vnc.11.0.6.nupkg
- Avalonia.Headless.XUnit.11.0.6.nupkg
- Avalonia.LinuxFramebuffer.11.0.6.nupkg
- Avalonia.Markup.Xaml.Loader.11.0.6.nupkg
- Avalonia.Native.11.0.6.nupkg
- Avalonia.ReactiveUI.11.0.6.nupkg
- Avalonia.Remote.Protocol.11.0.6.nupkg
- Avalonia.Skia.11.0.6.nupkg
- Avalonia.Themes.Fluent.11.0.6.nupkg
- Avalonia.Themes.Simple.11.0.6.nupkg
- Avalonia.Win32.11.0.6.nupkg
- Avalonia.X11.11.0.6.nupkg
与Windows和Linux平台上的编译相比,macOS编译后多出了一个 Avalonia.Native.11.0.6.nupkg