连同我们的应用程序,我需要安装 Gupta Team Developer Deploy 文件。这是一个 InstallShield Exe,可以通过命令“Deploy60.exe /s /f1”c:\temp\silentinstall.iss”静默运行,其中提供的文件是通过之前运行安装程序生成的。从命令运行此命令提示工作得很好。
所以我尝试使用这样的自定义操作在 Wix 中运行它:
<CustomAction Id="RunCenturaDeploy"
Directory="TDREDIST"
ExeCommand="[TDREDIST]deploy60.exe /s /SMS /f1[TDREDIST]silent.ini"
Execute="deferred"
Impersonate="no"
Return="asyncWait"/>
<InstallExecuteSequence>
<Custom Action="RunCenturaDeploy" Before="InstallFinalize" />
</InstallExecuteSequence>
但是当我在 Wix 中运行它时,它不起作用并且自定义操作返回 -3(MSI 日志文件说明了这一点): CustomAction RunCenturaDeploy 返回了实际错误代码 -3(请注意,如果在沙箱内进行翻译,这可能不是 100% 准确) 操作于 16:07:33 结束:InstallFinalize。返回值 3。操作于 16:07:33 结束:安装。返回值 3。
我可以看到该命令开始运行,因为这包括安装已安装的 Visual C++ 运行时,并且 InstallShield 图标显示该进程正在运行。我已经考虑过权限问题,但 Impersonate="no" 应该解决这个问题。此外,我正在从提升的命令提示符处静默运行安装程序。
有人有类似的问题吗?