C# Avalonia项目怎么打包发布 Avalonia应用部署教程

来源:这里教程网 时间:2026-02-21 17:33:50 作者:

打包发布 Avalonia 应用,核心是用 dotnet publish 生成独立可执行文件,并确保运行时、资源和依赖项完整。不需要安装 .NET 运行时的“自包含”发布是最常用方式,适合分发给普通用户。

确认项目配置支持自包含发布

.csproj 文件中,确保已设置以下关键属性:

SelfContained 设为 true(默认为 true,但显式声明更稳妥) PublishTrimmed 可选设为 true(减小体积,但需测试功能是否正常) RuntimeIdentifier 明确指定目标平台,例如:
win-x64
osx-x64
linux-x64
Avalonia 相关 NuGet 包(如
Avalonia.Desktop
)版本需 ≥ 11.0.0,以保证跨平台发布稳定性

命令行一键发布(推荐)

打开终端,进入项目根目录(含 .csproj 的文件夹),执行:

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishTrimmed=true -o ./publish-win

说明:

-c Release
:使用 Release 配置编译
-r win-x64
:目标 Windows 64 位;换成
osx-x64
linux-x64
即可打包对应平台
--self-contained true
:打包自带 .NET 运行时,用户无需预装 .NET
-o ./publish-win
:输出到当前目录下的 publish-win 文件夹

执行完成后,publish-win 文件夹内会有一个与项目名同名的 .exe 文件(Windows)或可执行二进制(macOS/Linux),双击即可运行。

处理图标、资源与配置文件

Avalonia 默认不自动复制非代码文件(如

App.xaml
、图片、JSON 配置)。需在 .csproj 中显式声明:

<ItemGroup>
  <Content Include="Assets\**" CopyToOutputDirectory="PreserveNewest" />
  <Content Include="App.xaml" CopyToOutputDirectory="PreserveNewest" />
  <Content Include="*.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

这样

dotnet publish
才会把它们一起放进发布目录。图标(
AppIcon.ico
.icns
)也需放入对应位置并引用,否则任务栏/ dock 显示默认图标。

可选:生成安装包(Windows)

若需更友好的分发体验(如开始菜单快捷方式、卸载项),可用第三方工具封装:

Squirrel.Windows:轻量、开源,适合自动更新场景 WiX ToolsetAdvanced Installer:生成标准 MSI 安装包 Nullsoft Scriptable Install System (NSIS):脚本化强,体积小,适合简单打包

注意:这些工具都作用于

dotnet publish
输出的文件夹,不是直接集成进构建流程——先发布,再打包。

基本上就这些。Avalonia 发布比 WPF 更接近 .NET Core 原生逻辑,只要 RuntimeIdentifier 和 SelfContained 配置对了,其余就是标准 dotnet publish 流程。不复杂但容易忽略图标和资源路径,建议发布后先在干净系统(没装 .NET 的机器)上试跑一次。

相关推荐