【问题标题】:Installer waiting when EXE is run as custom action during installation在安装过程中作为自定义操作运行 EXE 时安装程序正在等待
【发布时间】:2016-11-01 10:02:12
【问题描述】:

我正在使用 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"/>

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

【问题讨论】:

    标签: wix windows-installer custom-action mosquitto wix3.10


    【解决方案1】:

    安装暂停,因为在您的自定义操作中,您有 Return="check"。有关 Return 属性的详细信息,请参阅CustomAction documentation

    Return="asyncNoWait" 是你想要的。

    但是,the WiX documentation for running a program after install 显示了不同的方式:

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

    【讨论】:

    • 关于您提到的第二种方法,您能告诉我如何将参数传递给安装程序吗?我将在属性下的值部分指定“mosquitto.exe”。但是参数“-v”呢?
    • 我不是 100% 确定。我会尝试Value="[#myapplication.exe] -v"Value='"[#myapplication.exe]" -v' 之类的东西,看看它的表现如何。
    • 抱歉@mayooran 看起来我之前把你引错了。我想使用命令行参数的正确方法是像你一样对我们进行标准自定义操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多