Wix 安装过程中,当EXE作为自定义操作运行时,安装程序正在等待

Wix 安装过程中,当EXE作为自定义操作运行时,安装程序正在等待,wix,windows-installer,custom-action,mosquitto,wix3.10,Wix,Windows Installer,Custom Action,Mosquitto,Wix3.10,我正在使用WIX安装MOSQUITO,复制文件后,我将尝试使用自定义操作运行mosQUITO.exe。它将启动一个新的命令提示符,安装将在此暂停。只有在我终止该命令提示符时,它才会恢复。下面是我的代码 <Feature Id="ProductFeature" Title="MosquittoInstaller" Level="1"> <ComponentGroupRef Id="MosquittoFilesGroup"/> </Feature> &

我正在使用WIX安装MOSQUITO,复制文件后,我将尝试使用自定义操作运行mosQUITO.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"/>


我做错了什么?请注意。

安装暂停,因为在自定义操作中,您有
Return=“check”
。有关返回属性的更多信息,请参见

Return=“asyncNoWait”
就是您想要的

但是,它显示了一种不同的方式:

<Property Id="WixShellExecTarget" Value="[#myapplication.exe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />


关于您提到的第二种方法,您能告诉我如何将参数传递给安装程序吗?我将在属性下的值部分指定“mosquitcho.exe”。但是“v”这个论点呢?我不是100%确定。我会尝试一些类似于
Value=“[#myapplication.exe]-v”
Value='“[#myapplication.exe]”-v'
的方法,看看它是如何运行的。抱歉@mayoran看起来我之前把你搞错了。我想使用命令行参数的正确方法是像您一样为我们提供一个标准的自定义操作。