我正在开发一个 MSI 安装程序,其中包含一个 tool.exe 文件作为 <Binary>
元素。在安装过程中的某个时候,我需要运行 tool.exe。
所以我有一个自定义操作来执行它:
<CustomAction Id="RunToolExe"
BinaryKey="ToolExe"
ExeCommand=" -r 240 -name appservice"
Execute="immediate"
Return="check"
/>
然后我在
<InstallExecuteSequence>
中安排问题:自定义操作运行时,cmd 行窗口在安装过程中闪烁得非常快。这对用户来说有点不舒服。有没有办法隐藏这个屏幕?
我无法使用 WixQuietExecCA,因为我无法在 Wix 中引用 Binary tool.exe。
最佳答案
<CustomAction Id="SettoolEXEPATH" Property="EXEPATH" Value=""[INSTALLDIR]tool.exe" <additional commands> Execute="immediate"/>
<CustomAction Id="EXEPATH" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
您可以像上面显示的示例一样使用 WixQuietExecCA,相应地安排自定义操作。第一个操作 SettoolEXEPATH 将属性 EXEPATH 设置为 tool.exe 的路径,此属性名称用作 WixQuietExecCA 的自定义操作 ID,用作命令行参数。