在链中执行 MSI 文件时,如何阻止 WiX 传递 ARPSYSTEMCOMPONENT="1"?

Posted

技术标签:

【中文标题】在链中执行 MSI 文件时,如何阻止 WiX 传递 ARPSYSTEMCOMPONENT="1"?【英文标题】:How do you stop WiX from passing ARPSYSTEMCOMPONENT="1" when executing MSI files in a chain? 【发布时间】:2013-11-06 02:59:18 【问题描述】:

在“Bundle.wxs”中,我有一个“链”,其中包含按顺序应用的“MsiPackage”。当 WiX 引擎应用每个 MSI 文件时,它显然会通过 ARPSYSTEMCOMPONENT="1" 阻止 MSI 条目出现在 Windows“添加/删除程序”控制面板中,但我实际上希望链中的每个 MSI 都出现在那里。

<Chain>  
<MsiPackage SourceFile="myproduct_1.0.0.0.msi"</MsiPackage>
</Chain>

这是日志条目:

[01A4:0A94][2013-11-05T18:04:07]i301: Applying execute package: myproduct_1.0.0.0.msi, action: Install, path: C:\ProgramData\Package Cache\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXv1.0.0.0\myproduct_1.0.0.0.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7"  

我怎样才能阻止这种情况发生?

【问题讨论】:

【参考方案1】:

将 MsiPackage 元素的 Visible 属性设置为“yes”。

【讨论】:

以上是关于在链中执行 MSI 文件时,如何阻止 WiX 传递 ARPSYSTEMCOMPONENT="1"?的主要内容,如果未能解决你的问题,请参考以下文章

PromiseKit 无法在链中命中

Wix 托管引导程序应用程序:通过捆绑将变量传递给 msi

WiX MSI 和 EXE 作为一个 EXE

用于包装的 WiX 工具

Wix 自定义卸载操作 - 如何在 msi 删除文件之前运行

WiX 安装程序生成一个可执行文件