如何为Wix安装程序保持打开命令提示符

时间:2014-01-13 21:51:32

标签: wix

我们的wix安装程序的最后一步是在命令提示符下运行SQLUpgrade.exe以保持更新数据库架构。

    <CustomAction Id="SQLPackageUpgrade" ExeCommand="start [SQLPackageLOCATION]SqlPackage.exe /Action:Publish /SourceFile:&quot;[SQLPackageLOCATION]XXX.dacpac&quot; /TargetConnectionString:&quot;Server=[DBSERVER];Database=[DBNAME]&quot;" Directory="SQLPackageLOCATION" Execute="deferred" Return="asyncNoWait"/>

使用上面的代码,命令提示符会在命令退出时立即消失。 如果执行失败,我们将无法在命令提示符中看到错误消息。我们尝试将结果移植到txt文件,但它没有记录任何内容。 是否有一种简单的方法可以让客户打开此命令提示符,以便他们有机会看到错误消息?谢谢!

2 个答案:

答案 0 :(得分:1)

建议不要在自定义操作中直接调用EXE,而是建议使用Quiet Execution custom action

好处是:

  • 安装过程中控制台窗口不会闪烁,只是看不到它。这是一种糟糕的用户体验
  • 安装日志文件将包含有关实际错误的所有信息

您已将自定义操作正确安排为延迟 - 必须延迟更改目标系统的自定义操作。

最后,但并非最不重要:您应该考虑回滚自定义操作并适当地安排它。每个延迟CA都应具有相应的回滚CA - 否则如果安装失败并回滚,则可能使系统处于未定义状态。

答案 1 :(得分:0)

我认为在这种情况下,您需要更改自定义操作的两个属性:

Execute="immediate" Return="check"

检查意味着你想要结果,所以如果它失败了它可能会停止,但至少你应该能看到它。

您也可以尝试:

Return="asyncWait"

希望这有帮助。