WiX Toolset 是一款功能强大的开源工具,用于创建 Windows 安装包(如 .msi
和 .exe
)。它支持从简单的文件复制到复杂的服务安装等多种功能,适用于个人开发者和企业应用。本文将详细介绍 WiX Toolset 的三种安装方式及使用方法。
WiX Toolset 简介
WiX Toolset 是基于 XML 的工具集,主要用于生成 .msi
和 .exe
格式的安装包,提供以下特点:
- 开源:免费且支持多种扩展功能。
- 灵活:适用于简单安装程序和复杂企业级应用。
- 多工具支持:可以通过命令行、Visual Studio 集成以及直接从 GitHub 使用。
安装 WiX Toolset 的三种方式
方法 1:通过命令行安装 WiX Toolset
这是推荐的安装方式之一,适合需要在命令行或 CI/CD 流程中使用的开发者。
1. 确保安装 .NET SDK
WiX Toolset 的命令行工具依赖于 .NET SDK 6.0 或更高版本。
- 验证 .NET SDK 是否已安装:
如果未安装,请前往 .NET 下载页面 安装适合的版本。dotnet --version
2. 安装 WiX 工具
运行以下命令安装 WiX:
dotnet tool install --global wix
3. 验证安装
安装完成后,运行以下命令检查工具是否正确安装:
wix --version
如果显示版本号(如 5.0.2
),则说明安装成功。
4. 常见错误及解决方法
-
错误:找不到
wix
包
原因:NuGet 源未正确配置。
解决方法:dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org dotnet tool install --global wix
-
错误:权限不足
原因:没有管理员权限。
解决方法:以管理员身份运行命令提示符或 PowerShell,然后重新运行安装命令。
方法 2:通过 Visual Studio 安装 WiX Toolset
如果你习惯使用图形化界面,可以选择在 Visual Studio 中安装 WiX Toolset 扩展。
1. 打开扩展管理器
- 在 Visual Studio 中,点击 扩展 -> 管理扩展。
- 在扩展管理器中选择 联机,然后搜索
WiX
。
2. 安装 WiX 扩展
- 找到
WiX v3 - Visual Studio 2022 Extension
或适合你 Visual Studio 版本的扩展。 - 点击 安装,然后重启 Visual Studio。
3. 创建 WiX 项目
- 在 Visual Studio 中点击 文件 -> 新建 -> 项目。
- 搜索
WiX
,选择 MSI Package 模板。 - 编辑自动生成的
.wxs
文件,添加你的安装内容。
4. 构建安装包
- 右键项目选择 生成,生成的
.msi
文件会出现在输出目录中(如bin/Debug
)。
方法 3:从 GitHub 手动下载并安装
WiX Toolset 的最新版本发布在 GitHub 上,可以直接从中下载并安装。
1. 下载工具
- 前往 WiX Toolset GitHub Releases。
- 下载以下文件:
wix-cli-x64.msi
:WiX 命令行工具安装包。WixAdditionalTools.exe
(可选):附加工具(如Heat.exe
)。
2. 安装工具
- 双击运行
wix-cli-x64.msi
,按照提示完成安装。 - (可选)双击运行
WixAdditionalTools.exe
,安装附加工具。
3. 验证安装
在命令行运行以下命令检查安装:
wix --version
如何使用 WiX Toolset 创建安装包
无论使用哪种安装方式,你都可以按照以下步骤创建一个简单的安装包。
1. 创建 XML 文件
ExampleComponents.wxs
的 XML 文件,定义内容。例如:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Fragment>
<ComponentGroup Id="ExampleComponents" Directory="INSTALLFOLDER">
<Component>
<File Source="ExampleComponents.wxs" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Folders.wxs
的 XML 文件,定义内容。例如:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Fragment>
<StandardDirectory Id="ProgramFiles6432Folder">
<Directory Id="INSTALLFOLDER" Name="!(bind.Property.Manufacturer) !(bind.Property.ProductName)" />
</StandardDirectory>
</Fragment>
</Wix>
Package.en-us.wxs
的 XML 文件,定义内容。例如:
<!--
This file contains the declaration of all the localizable strings.
-->
<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
<String Id="DowngradeError" Value="A newer version of [ProductName] is already installed." />
</WixLocalization>
Package.wxs
的 XML 文件,定义内容。例如:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Package Name="PackageTest" Manufacturer="TODO Manufacturer" Version="1.0.0.0" UpgradeCode="539ba910-3f74-45ae-9f18-22195eb19bc5">
<MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
<Feature Id="Main">
<ComponentGroupRef Id="ExampleComponents" />
</Feature>
</Package>
</Wix>
2. 构建安装包
运行以下命令生成 .msi
文件:
wix build Package.wxs Folders.wxs ExampleComponents.wxs -loc Package.en-us.wxl -o PackageTest.msi
3. 测试安装包
找到生成的 .msi
文件,双击运行,检查安装过程是否正常。
总结
WiX Toolset 提供了多种安装方式,你可以根据开发环境和需求选择合适的方法:
- 通过命令行安装:适合直接使用命令行或集成到 CI/CD 流程。
- 通过 Visual Studio 安装:适合需要图形化界面操作的用户。
- 从 GitHub 下载并安装:适合手动管理工具版本的用户。