好的我相信我正在关注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
答案 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>