本页面文档介绍了PowerToys的各种安装方法,包括基于WiX的安装程序架构、分发渠道以及与更新系统的集成。内容涵盖了安装程序、引导程序的技 术实现,以及安装组件与运行时系统之间的关系。
有关安装后更新系统的行为信息,请参阅更新系统。有关创建这些安装程序的构建和部署管道的详细信息,请参阅构建和部署管道。
PowerToys支持多种分发渠道,每种渠道都有特定的安装程序格式和目标受众。
来源: src/common/updating/updating.cpp18-19 src/common/updating/updating.h45-46 installer/PowerToysSetup/Product.wxs21-26
PowerToys安装程序是使用WiX(Windows Installer XML)构建的,它包含一个主MSI包,其中为每个PowerToys模块都设置了组件组。
来源: installer/PowerToysSetup/Product.wxs54-83 installer/PowerToysSetup/Product.wxs476-498
PowerToys 支持按用户和全局安装,并具备自动范围检测和适当的文件放置功能。
| 安装范围 | 目标目录 | 安装程序模式 | 注册表范围 |
|---|---|---|---|
| 按用户 | %LOCALAPPDATA%\Microsoft\PowerToys | powertoysusersetup | HKEY_CURRENT_USER |
| 全局 | %ProgramFiles%\PowerToys | powertoyssetup | HKEY_LOCAL_MACHINE |
安装程序使用条件逻辑来确定适当的安装范围。
来源: installer/PowerToysSetup/Product.wxs29 installer/PowerToysSetup/Product.wxs135 installer/PowerToysSetup/Product.wxs121-133 installer/PowerToysSetup/Product.wxs403-408
安装程序包含多个自定义操作,用于处理专门的安装任务。
来源: installer/PowerToysSetup/Product.wxs136-204 installer/PowerToysSetup/Product.wxs211-463
PowerToys 通过 MSIX 打包与 Microsoft Store 集成,可自动检测和清理旧的 MSIX 版本。
来源: src/common/updating/installer.cpp15-16 src/common/updating/installer.cpp21-45 src/runner/main.cpp130-135
PowerToys 的安装通过引导程序包含依赖项管理,该引导程序负责处理所需的组件。
| 依赖项 | 目的 | 安装方法 |
|---|---|---|
| WebView2 运行时 | 设置 UI 和 Web 内容 | 引导程序下载 |
| VC++ 可再发行组件包 | 原生模块支持 | 包含在安装程序中 |
| Windows 应用 SDK | WinUI3 应用程序 | 组件组 |
| .NET 运行时 | 托管模块 | 自包含部署 |
来源: installer/PowerToysSetup/Product.wxs78-79 src/runner/main.cpp147-180
完整的安装过程整合了多个系统和验证步骤。
来源: installer/PowerToysSetup/Product.wxs149-204 src/runner/main.cpp96-236 src/runner/main.cpp130-135