CAQuietExec命令字符串必须以带引号的应用程序名称开头

时间:2011-02-18 19:35:24

标签: wix wix3.5

好的我相信我正在关注Wix3.5中的在线示例来执行安静的命令但我似乎无法通过引用来执行命令。

<Component Id="MapObjectsRuntime' Guid='*'>
  <File Id = 'Mo23rtEXE' Name='Mo23rt.exe' Source='....' KeyPath="yes"/>
<Component>

<Property Id = "QtExecCmdLine" Value="Mo23rt.exe" />

// I've tried single & double quotes, and double double quotes around Mo23.

<CustomAction Id = "InstallMapObjects" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check" />

<InstallExecuteSequence>
  <Custom Action="InstallMapObjects" After="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>

我确实收到了构建wix项目的警告: 文件Mo23rtEXE不是Font,其版本不是随附文件引用。

我还需要为mo23rt.exe命令分配命令行参数,但我首先尝试让它工作。

正如谷歌所揭示的那样,很多人似乎都在为此而苦苦挣扎。

忘记添加正在运行的setup.exe / l * v install.log:

MSI Doing action: InstallMapObjects
.
.
Property Change: Deleting QtExeCmdLine property.  Its current value is 'Mo23rt.exe'.
CAQuitExec: Command string must begin with quoted application name.
CAQuietExec: Error 0x80070057 invalid command line property value

3 个答案:

答案 0 :(得分:2)

您可以立即安排自定义操作,但尝试运行应由安装程序安装的文件。冲突就出现了:在安装文件之前立即运行CA,因为这会以延迟顺序发生。

我建议您先熟悉Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer文章。

答案 1 :(得分:0)

我曾尝试过“”mo23rt.exe“”和“'mo23rt.exe'”,对我没有尝试'“mo23rt.exe”'感到羞耻。还有其他的东西仍然是错的,但它可能就是上面提到的,或者可能是我正在尝试运行一些试图建立状态栏对话框的东西,并不是那么安静。

答案 2 :(得分:0)

我将其更改为常规自定义操作副CAQuiet。

<CustomAction Id="InstallMapObjects" FileKey="Mo23rtEXE" ExeCommand="/ACDJKLM" Execute="commit"/> 

followed by 

<InstallExecuteSequence>
  <Custom Action="InstallMapObjects" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>