补充安装器目录职责总览

This commit is contained in:
zhengxuan.zhang
2026-08-06 14:58:57 +08:00
parent 153ff9ffe8
commit d66621192c
@@ -39,6 +39,53 @@ BootstrapperBundleInstaller.exe
最终用户通常运行 `BundleInstaller.exe`。直接运行 `Installer.msi` 只会执行内层 MSI 安装流程,不包含完整的 Bundle 前置依赖检测和自定义引导界面。
### 打包目录总览:产品专属内容与通用基础设施
`XP.Installer` 不是一个完全通用的空白 WiX 模板,而是“通用安装框架 + 当前产品定制内容”的组合。维护或复用时可按下面的边界判断:
#### 一、与待打包软件直接相关的内容
这些文件决定安装包中安装什么软件、安装到哪里、显示什么产品信息以及执行哪些产品授权逻辑:
| 路径 | 作用 | 复用时的处理 |
|---|---|---|
| `Setup\BundleInstaller\IDE\` | 待打包软件的实际文件输入目录;当前 `Files.wxs` 仍引用外部 `D:\07_IDE\IDEAuto\...` 路径 | 换产品时必须替换,并同步重新生成文件清单 |
| `Setup\BundleInstaller\Files.wxs` | MSI 的产品文件、目录、配置文件和资源清单 | 产品专属,通常需要重新 harvest 或修改 `Source` |
| `Setup\BundleInstaller\ReleaseFiles.generated.wxs` | 根据发布目录生成的产品文件清单 | 生成文件,不建议手工编辑;换产品后重新生成 |
| `Setup\BundleInstaller\ProjectDefaults.wxi` | 产品名、版本、厂商、升级 GUID、前置依赖开关等默认值 | 产品专属,发布新产品或新版本时重点修改 |
| `Setup\BundleInstaller\UIresource\` | MSI 安装界面的公司 Logo、产品 Logo、按钮和背景资源 | 产品品牌资源,需要按产品替换 |
| `Setup\BundleInstaller\CustomActions\` | 许可证类型选择、HASP/LMS 授权处理等自定义操作 | 当前产品/授权体系专属,不能直接视为通用代码 |
| `Setup\BundleInstaller\WPFInstaller\Dependencies\` | 安装过程中使用的授权、硬件锁和安装辅助 DLL | 与当前产品及授权环境相关,替换产品时必须重新确认 |
| `Setup\BundleInstaller\WPFInstaller\Resources\` | Bundle 图标、启动图、许可证文本等资源 | 部分是通用 UI 资源,许可证和品牌文件属于产品专属 |
| `Setup\BundleInstaller\WPFInstaller.Ui\` | 自定义安装向导页面、许可证页面、产品标题和主题资源 | 基于通用框架,但页面内容和授权流程是当前产品定制 |
| `Setup\Webupdater\UpdaterFiles.wxs` | WebUpdater/联网升级相关文件的安装清单 | 结构可复用,但升级程序和文件内容属于产品专属 |
#### 二、通用的安装工程基础设施
这些内容主要负责 WiX 编译、MSI/Burn 编排和安装流程,本身不等同于被安装的业务软件:
| 路径 | 作用 |
|---|---|
| `XP.Installer.sln``Setup\BundleInstaller\XP.Installer.sln` | Visual Studio 解决方案入口 |
| `Product_Main.wixproj` | WiX MSI 项目构建配置 |
| `WPFInstaller\Bootstrapper.wixproj` | WiX Burn Bundle 项目构建配置 |
| `WPFInstaller.Ui\Bootstrapper.Ui.csproj` | WPF 安装向导类库构建配置 |
| `Setup.wxs``UI_Texts.wxs` | MSI 安装目录、UI 序列、文本和自定义操作的 WiX 编排;结构通用,但其中的产品属性和引用需要检查 |
| `WPFInstaller\Bundle.wxs` | Burn 引导程序的安装链、MSI 包、前置依赖和自定义 UI 编排;结构通用,但产品版本、包路径和升级码仍需按产品配置 |
| `Defines.wxi` | 环境变量与默认值之间的 WiX 预处理变量桥接 |
| `ReleaseFilesRoot.wxs` | 发布文件目录的 WiX 根节点和变量入口 |
| `Setup\Scripts\` | CI/批处理构建参数和自动化脚本;脚本结构通用,默认路径和项目名称是当前工程定制 |
| `Resource\InstallUtils.dll` | 安装过程使用的辅助组件,是否能跨产品复用需结合其接口和授权逻辑确认 |
#### 三、开发工具、依赖和生成文件
- `Votive2022.vsix``wix314.exe`:WiX 开发环境安装包,不会被装入最终产品。
- `WixEdit\binaries\`:用于手动编辑/harvest `Files.wxs` 的辅助工具,不参与正式构建。
- `Setup\BundleInstaller\packages\`WiX、Xeam、WPF 依赖等构建依赖,不是待打包软件本身;其中 `Hex.Wix.Xeam.1.2.6` 提供安装向导框架和相关运行库。
- `bin\``obj\``.vs\`:构建输出和 Visual Studio 缓存,不应作为源文件维护。
复用该安装器时,建议保留通用工程骨架,再优先替换“产品专属内容”表中的文件;特别是 `ProjectDefaults.wxi``Files.wxs``ReleaseFiles.generated.wxs``Bundle.wxs`、许可证逻辑和品牌资源,不能只修改产品名称后直接用于另一个软件。
## 二、关键机制
### 1. 变量/版本控制中心:`Defines.wxi` + `ProjectDefaults.wxi`