wix安装运行应用程序后,CMD窗口保持打开状态

wix安装运行应用程序后,CMD窗口保持打开状态,cmd,wix,custom-action,Cmd,Wix,Custom Action,使用Wix安装程序(win 8),我有一个自定义操作,在成功安装后使用Wix运行应用程序: <CustomAction Id='LaunchFile' Directory='TARGETDIR' Impersonate="no" Execute="immediate" ExeCommand='[SystemFolder]cmd.exe start CMD /c ""[TARGETDIR]ManagerAndCon

使用Wix安装程序(win 8),我有一个自定义操作,在成功安装后使用Wix运行应用程序:

       <CustomAction Id='LaunchFile'
        Directory='TARGETDIR'
        Impersonate="no"
        Execute="immediate"
        ExeCommand='[SystemFolder]cmd.exe start CMD /c ""[TARGETDIR]ManagerAndControl.exe""'
        Return="asyncNoWait" />

填写此处丢失的内容

像这样编辑您的命令

> ExeCommand='[SystemFolder]cmd.exe start CMD /c ""[TARGETDIR]ManagerAndControl.exe"" &amp; exit'
编辑

> ExeCommand='"[TARGETDIR]ManagerAndControl.exe"'
我刚刚试过这个,在我重新创建了你原来的问题之后,它就起作用了。但是,在您有[TARGETDIR]的地方,我使用[INSTALLDIR]——我假设这是引用您的安装目录。您需要注意使用倒逗号。

请改用“安静执行自定义操作”

更新:

我必须更新我的答案。您应该使用WixShellExec自定义操作。它的工作原理非常类似于静默执行CA,但它允许您无需等待应用程序关闭即可启动应用程序

但是,它只能用作即时自定义操作

这里有一个您需要的实现的完整示例:


谢谢你的帮助,我终于解决了:

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

 <!-- UI code here -->

 <Publish Event='DoAction' Value='LaunchApplication'>(NOT Installed) AND (LAUNCHPRODUCT = 1)</Publish>

(未安装)和(LAUNCHPRODUCT=1)

它不工作:)。正如我所说,cmd正在关闭,但应用程序也正在关闭。我刚刚修改了我的答案-我相信这是可行的。在重新创建了你的原始版本后,我刚刚在我的安装中试用了它。嗨,它不起作用了。请看我编辑的问题。
> ExeCommand='[SystemFolder]cmd.exe start CMD /c ""[TARGETDIR]ManagerAndControl.exe"" &amp; exit'
> ExeCommand='"[TARGETDIR]ManagerAndControl.exe"'
 <Property Id="WixShellExecTarget" Value='[TARGETDIR]ManagerAndControl.exe' />
 <CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes"   />

 <!-- UI code here -->

 <Publish Event='DoAction' Value='LaunchApplication'>(NOT Installed) AND (LAUNCHPRODUCT = 1)</Publish>