2011-02-18 35 views
2

好的我相信我遵循Wix3.5中的在线示例来执行安静的命令,但我似乎无法让我的命令被执行引用。CAQuietExec命令字符串必须以引用的应用程序名称开头

<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不是一个字体,它的版本是不是伴随文件引用。

我还需要分配命令行参数到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 

回答

0

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

+0

我建议使用包装中“的和USIG [DIR] mo23rt.exe或[#fileKey]其中的FileKey的EXE的文件ID。这是更好地完全限定EXE路径则认为它会(它可能不会) – 2011-02-18 21:03:25

0

我将它更改为常规自定义动作副CAQuiet。

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

followed by 

<InstallExecuteSequence> 
    <Custom Action="InstallMapObjects" Before="InstallFinalize">NOT Installed</Custom> 
</InstallExecuteSequence> 
相关问题