在 WIX Bundle 中更改 属性
Changing a property inside a WIX Bundle
我的构建系统使用 Wix 创建了一个 MSI,然后使用 WIX 将其捆绑到另一个充当引导程序的 EXE 中。引导程序确保安装了所有依赖项(.NET 等)。
我想根据下载者更改 MSI 中的一些属性。构建完成后很久我才会知道设置。
我可以通过编辑属性数据库来使用 MSI 做到这一点。但是,当我对捆绑包尝试相同的技术时,它(WIX 互操作库)说它无法打开文件。
那么,我该如何做这些事情之一:
- 在 WIX 捆绑包 EXE 中编辑一个 属性(然后我可以将其传递给捆绑包)
- 提取并重新插入捆绑的 MSI
您可以使用命令行将属性传递给 wix 包。然后捆绑包可以将 属性 传递给 MSI。
WiX Bootstrapper: How do I set burn variables from the command line?
Pass parameters from bootstrapper to msi bundle package
我能想到的另一个解决方案:如果您编写自己的自定义引导程序,您将可以访问 IBootstrapperEngine::SetVariable
,并且您可以用它做任何您想做的事情,包括设置 MSI 可以读取的属性. https://wixwpf.codeplex.com/ 应该很容易。
如果你问是否有像 orca.exe 这样的 Wix 刻录工具,我会说没有。
可能的选择:
- 即时生成 wix burn 安装程序(包括编译)
- 拆分可执行文件:将 Compressed 属性设置为 "no"。然后您就可以访问 *.msi。
我的构建系统使用 Wix 创建了一个 MSI,然后使用 WIX 将其捆绑到另一个充当引导程序的 EXE 中。引导程序确保安装了所有依赖项(.NET 等)。
我想根据下载者更改 MSI 中的一些属性。构建完成后很久我才会知道设置。
我可以通过编辑属性数据库来使用 MSI 做到这一点。但是,当我对捆绑包尝试相同的技术时,它(WIX 互操作库)说它无法打开文件。
那么,我该如何做这些事情之一:
- 在 WIX 捆绑包 EXE 中编辑一个 属性(然后我可以将其传递给捆绑包)
- 提取并重新插入捆绑的 MSI
您可以使用命令行将属性传递给 wix 包。然后捆绑包可以将 属性 传递给 MSI。
WiX Bootstrapper: How do I set burn variables from the command line?
Pass parameters from bootstrapper to msi bundle package
我能想到的另一个解决方案:如果您编写自己的自定义引导程序,您将可以访问 IBootstrapperEngine::SetVariable
,并且您可以用它做任何您想做的事情,包括设置 MSI 可以读取的属性. https://wixwpf.codeplex.com/ 应该很容易。
如果你问是否有像 orca.exe 这样的 Wix 刻录工具,我会说没有。
可能的选择:
- 即时生成 wix burn 安装程序(包括编译)
- 拆分可执行文件:将 Compressed 属性设置为 "no"。然后您就可以访问 *.msi。