补充安装项目依赖关系说明
This commit is contained in:
@@ -9,7 +9,7 @@ BundleInstaller.exe (外层 Bootstrapper/Bundle)
|
||||
└── Installer.msi (内层 MSI 安装包)
|
||||
```
|
||||
|
||||
解决方案 `InstallerMSI.sln` 包含 4 个项目,构建时按依赖顺序编译:
|
||||
解决方案 `XP.Installer.sln` 包含 4 个项目,构建时按依赖顺序编译:
|
||||
|
||||
| 项目 | 类型 | 作用 |
|
||||
|---|---|---|
|
||||
@@ -18,6 +18,27 @@ BundleInstaller.exe (外层 Bootstrapper/Bundle)
|
||||
| `Bootstrapper.Ui`(`WPFInstaller.Ui`) | C# WPF 类库 | 基于第三方组件 **Xeam Visual Installer**(`packages\Hex.Wix.Xeam.1.2.6`)实现的自定义美化安装向导界面 |
|
||||
| `Bootstrapper`(`WPFInstaller\Bundle.wxs`) | WiX Bundle 项目 | 生成最终 `BundleInstaller.exe`,把 MSI + 各种运行时前置组件(.NET、VC++ Redistributable 等)打包链接在一起,并挂载自定义 WPF UI |
|
||||
|
||||
### 项目依赖关系与职责
|
||||
|
||||
这 4 个项目分别负责不同层次的安装功能,依赖关系如下:
|
||||
|
||||
```text
|
||||
CustomActions
|
||||
↓
|
||||
Product_Main(Installer.msi)
|
||||
↓
|
||||
Bootstrapper.Ui
|
||||
↓
|
||||
Bootstrapper(BundleInstaller.exe)
|
||||
```
|
||||
|
||||
- `CustomActions`:C# 自定义操作 DLL,执行许可证选择、授权检测以及安装前后的特殊处理。
|
||||
- `Product_Main`:WiX MSI 项目,生成核心 `Installer.msi`,负责安装产品文件、目录、快捷方式、注册表和 MSI 安装界面。
|
||||
- `Bootstrapper.Ui`:WPF 安装界面类库,提供欢迎页、许可证页、进度页、升级提示等可视化安装向导页面。
|
||||
- `Bootstrapper`:WiX Burn 引导程序,把 `Installer.msi`、前置运行时和 `Bootstrapper.Ui` 组合为最终的 `BundleInstaller.exe`,负责整体安装、依赖检测和升级流程。
|
||||
|
||||
最终用户通常运行 `BundleInstaller.exe`。直接运行 `Installer.msi` 只会执行内层 MSI 安装流程,不包含完整的 Bundle 前置依赖检测和自定义引导界面。
|
||||
|
||||
## 二、关键机制
|
||||
|
||||
### 1. 变量/版本控制中心:`Defines.wxi` + `ProjectDefaults.wxi`
|
||||
@@ -55,7 +76,7 @@ BundleInstaller.exe (外层 Bootstrapper/Bundle)
|
||||
|
||||
### 打包步骤
|
||||
|
||||
1. 用 VS 打开 `Setup\BundleInstaller\InstallerMSI.sln`,先"重新生成解决方案"一次
|
||||
1. 用 VS 打开 `Setup\BundleInstaller\XP.Installer.sln`,先"重新生成解决方案"一次
|
||||
2. 打开 `WixEdit\binaries\WixEdit.exe`,新建项目
|
||||
3. 选择 "Import directory",导入需要打包的 release 文件夹(体积大会卡顿,属正常现象)
|
||||
4. 一路 Next 直到导入完成,点 Done
|
||||
|
||||
Reference in New Issue
Block a user