如何在macOS编译Avalonia

236 阅读1分钟

本篇文章简要介绍如何在macOS上编译Avalonia。编译的步骤主要是参考了github.com/AvaloniaUI/…github.com/AvaloniaUI/…。本篇文章以macOS 14.1.2为例讲解Avalonia在macOS上的源代码编译过程。

准备工作

编译源码的机器需要提前安装必要的工具和SDK。括号里是我编译源代码时用到的版本。

  1. Dotnet SDK(7.0.404
  2. Dotnet runtime(6.0.25
  3. Nodejs(20.10.0
  4. xcode(15.1)

源代码编译

准备源代码

在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