1

我正在使用 WIX 安装 Mosquitto,一旦复制了文件,我将尝试使用自定义操作运行 mosquitto.exe。它会启动一个新的命令提示符,安装会在那里暂停。只有当我终止该命令提示符时它才会恢复。下面是我的代码。

<Feature Id="ProductFeature" Title="MosquittoInstaller" Level="1">
  <ComponentGroupRef Id="MosquittoFilesGroup"/>
    </Feature>
<InstallExecuteSequence>
  <Custom Action="RunMosquitto" Before="InstallFinalize" />
</InstallExecuteSequence>


  <Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="INSTALLLOCATION">
    <Directory Id="KubeInstallDir" Name="Kube2.0">
      <Directory Id="MyProgramDir" Name="Mosquitto" />
    </Directory>
  </Directory>
</Directory>
<CustomAction Id='RunMosquitto'  FileKey="fil7D28AEF774656849395A2FA20A5C963D"  Execute="deferred" ExeCommand='-v' Return="check" HideTarget="no" Impersonate="no"/>

我在这里做错了什么?请指教。

4

1 回答 1

2

安装暂停,因为在您的自定义操作中,您有Return="check". 有关 Return 属性的更多信息,请参阅CustomAction 文档

Return="asyncNoWait"是你想要的。

但是,安装后运行程序的 WiX 文档显示了不同的方式:

<Property Id="WixShellExecTarget" Value="[#myapplication.exe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
于 2016-06-29T15:45:49.200 回答