CAQuietExec Command string must begin with quoted application name

无人久伴 提交于 2019-12-22 18:48:19

问题


Ok I believe I'm following the online example in Wix3.5 for doing quiet commands yet I cannot seem to get my command to be executed quoted.

<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>

I do get a warning building the wix project: The file Mo23rtEXE is not a Font, and its version is not a companion file reference.

I also need to assign command line parameters to the mo23rt.exe command but I'm first just trying to get this to work.

Lots of folks appear to be struggling with this too, as revealed by Google.

Forgot to add that running setup.exe /l*v install.log had:

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

回答1:


You schedule your custom action as immediate, but you try to run a file which should be installed by your installer. Here comes the conflict: immediate CA run BEFORE the files are installed, 'cause this happens in deferred sequence.

I would recommend you to get acquainted with Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer article first.




回答2:


I had tried ""mo23rt.exe"" and "'mo23rt.exe'", shame on me for not trying '"mo23rt.exe"'. Something else is still wrong but it might be what's mentioned above, or it might be I'm trying to run something that is trying to put up a status bar dialog and is not really that quiet.




回答3:


I changed it to a regular custom action vice CAQuiet.

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

followed by 

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


来源:https://stackoverflow.com/questions/5045727/caquietexec-command-string-must-begin-with-quoted-application-name

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!