如何保持Wix安装程序的命令提示符处于打开状态
wix安装程序的最后一步是在命令提示符下运行SQLUpgrade.exe,以保持数据库模式的更新如何保持Wix安装程序的命令提示符处于打开状态,wix,Wix,wix安装程序的最后一步是在命令提示符下运行SQLUpgrade.exe,以保持数据库模式的更新 <CustomAction Id="SQLPackageUpgrade" ExeCommand="start [SQLPackageLOCATION]SqlPackage.exe /Action:Publish /SourceFile:"[SQLPackageLOCATION]XXX.dacpac" /TargetConnectionString:&
<CustomAction Id="SQLPackageUpgrade" ExeCommand="start [SQLPackageLOCATION]SqlPackage.exe /Action:Publish /SourceFile:"[SQLPackageLOCATION]XXX.dacpac" /TargetConnectionString:"Server=[DBSERVER];Database=[DBNAME]"" Directory="SQLPackageLOCATION" Execute="deferred" Return="asyncNoWait"/>
使用上述代码,命令提示符在命令退出时立即消失。
如果执行失败,我们将无法看到命令提示符中显示的错误消息。我们尝试将结果移植到一个txt文件,但它不记录任何内容。
有没有一种简单的方法可以让这个命令提示符对客户保持打开状态,这样他们就有机会看到错误消息?谢谢 我认为在这种情况下,您需要更改自定义操作的两个属性:
Execute="immediate" Return="check"
检查意味着您需要结果,因此如果失败,它可能会停止,但至少您应该能够看到它
您也可以尝试:
Return="asyncWait"
希望这能有所帮助。建议您使用它,而不是在自定义操作中直接调用EXE 好处是:
- 控制台窗口在安装过程中不会闪烁,它只是不可见。这是一个糟糕的用户体验
- 安装日志文件将包含有关实际错误的所有信息
最后,但并非最不重要的一点:您应该考虑回滚自定义操作并适当地安排它。每个延迟CA都应该有相应的回滚CA-否则,如果安装失败并回滚,可能会使系统处于未定义状态。执行class='immediate'这样的自定义操作是非常错误的