如何在远程构建服务器及GitHub Actions中构建Wix项目
GitHub Actions/通用远程构建服务器编译Wix项目最优方案
核心原则
不要将Wix工具集提交到代码仓库,完全由构建流水线在运行时按需拉取对应版本的工具链,既保证构建环境一致性,也不会额外占用仓库存储体积。
Wix v3 版本配置方案
Wix v3仅支持Windows环境编译,依赖.NET Framework与MSBuild,配置步骤如下:
- 流水线选择GitHub官方
windows-latest运行器,该镜像已预配置MSBuild、.NET Framework等基础依赖,无需额外配置底层环境 - 构建前通过NuGet拉取官方Wix工具集,无需手动下载安装包
- 通过MSBuild指定Wix targets路径即可完成全项目编译
示例GitHub Actions步骤:
- name: 安装Wix v3工具集 run: nuget install WiX.Toolset -Version 3.14.0 -OutputDirectory ./wix-tools - name: 编译WPF项目与Wix安装包 run: msbuild YourSolution.sln /p:Configuration=Release /p:WixTargetsPath="$(Get-ChildItem ./wix-tools/WiX.Toolset.*)/tools/wix.targets"
Wix v4 版本配置方案
Wix v4为跨平台版本,采用DotNet Tool形式分发,支持Windows、Linux、macOS环境编译,配置步骤如下:
- 运行器可根据整体流水线需求选择
windows-latest/ubuntu-latest/macos-latest - 提前配置.NET 6及以上版本SDK,为Wix v4提供运行环境
- 通过dotnet tool命令安装Wix命令行工具,按需安装对应Wix扩展
- 直接使用dotnet build命令完成全解决方案编译
示例GitHub Actions步骤:
- name: 配置.NET SDK uses: actions/setup-dotnet@v3 with: dotnet-version: '7.0.x' - name: 安装Wix v4工具集 run: dotnet tool install --global wix --version 4.0.1 - name: 安装所需Wix扩展 run: wix extension add WixToolset.UI.wixext WixToolset.Util.wixext - name: 编译全解决方案 run: dotnet build YourSolution.sln --configuration Release
通用注意事项
- 若Wix项目包含基于.NET Framework开发的自定义动作,必须选择Windows环境进行构建
- 可通过构建参数将流水线生成的版本号注入Wix项目,实现安装包版本与WPF应用版本自动对齐
- 构建完成后可直接将生成的msi/exe包存档为CI流水线构件,方便后续发布使用
内容的提问来源于stack exchange,提问作者Thumb
相关产品推荐
相关产品推荐

