Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何保持Wix安装程序的命令提示符处于打开状态_Wix - Fatal编程技术网

如何保持Wix安装程序的命令提示符处于打开状态

如何保持Wix安装程序的命令提示符处于打开状态,wix,Wix,wix安装程序的最后一步是在命令提示符下运行SQLUpgrade.exe,以保持数据库模式的更新 <CustomAction Id="SQLPackageUpgrade" ExeCommand="start [SQLPackageLOCATION]SqlPackage.exe /Action:Publish /SourceFile:&quot;[SQLPackageLOCATION]XXX.dacpac&quot; /TargetConnectionString:&

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文件,但它不记录任何内容。
有没有一种简单的方法可以让这个命令提示符对客户保持打开状态,这样他们就有机会看到错误消息?谢谢

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

Execute="immediate" Return="check"
检查意味着您需要结果,因此如果失败,它可能会停止,但至少您应该能够看到它

您也可以尝试:

Return="asyncWait"

希望这能有所帮助。

建议您使用它,而不是在自定义操作中直接调用EXE

好处是:

  • 控制台窗口在安装过程中不会闪烁,它只是不可见。这是一个糟糕的用户体验
  • 安装日志文件将包含有关实际错误的所有信息
您已将自定义操作正确计划为延迟-更改目标系统的自定义操作必须延迟


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

执行class='immediate'这样的自定义操作是非常错误的