【问题标题】:Wix bundle runs a compiled BAT file at the end, that force shutdownWix 捆绑包在最后运行一个已编译的 BAT 文件,强制关闭
【发布时间】:2017-08-17 23:55:36
【问题描述】:

这是我的问题的一个简单示例:

我有这个简单的捆绑包

<Chain>
  <ExePackage SourceFile="C:\Users\this\Desktop\AAA\eee.exe"></ExePackage>
</Chain>

eee.exe 是两个文件的 IEXPRESS 的结果

  • eee.bat
  • eee.txt

IEXPRESS 运行 cmd /ce eee.bat

eee.bat 做一些事情然后以这一行结束

shutdown -r -f -t 0

一旦运行安装程序 Wix 的结果 它强制重启 然后重新运行安装程序

我们如何改变它的行为,使其在重启后不会重新运行安装程序

【问题讨论】:

  • 更改代码的任何部分都会在重新启动后重新运行安装程序。它不在您发布的代码中。尝试在 eee.bat 中搜索。
  • 很可能是“shutown -r -f -t 0”interopt了wix安装程序,所以windows认为安装还没有完成,重启后又启动了。跨度>
  • 啊,所以你想在关机前杀死进程。 stackoverflow.com/questions/2888851/…
  • 从你的蝙蝠中杀死安装程序几乎可以肯定是不好的行为
  • 您可能应该使用引导程序的 LaunchTarget 功能。这发生在安装完成后,并且在机器重新启动后不会重新启动安装。 wixtoolset.org/documentation/manual/v3/xsd/bal/…

标签: batch-file cmd wix iexpress


【解决方案1】:

在安装过程中强制重新启动不是一个好习惯。正如您帖子中的 cmets 所指出的,您正在中断自己的安装程序。相反,您可以使用成功退出代码 (0) 来告诉安装程序重新启动。

<Chain>
   <ExePackage SourceFile="C:\Users\this\Desktop\AAA\eee.exe">
      <ExitCode Value="0" Behavior="forceReboot"/>
  </ExePackage>
</Chain>

不要忘记从 BAT 文件中取出关机行。

【讨论】:

  • 这样做,它仍然会在重新启动后重新启动安装程序。它重新启动两个实例!
  • 您是否从编译的批处理文件中删除了关机命令?如果您这样做了,但它仍在重新启动安装程序,您应该发布其余代码,以便我们帮助找出它重新启动的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
  • 2018-09-05
  • 1970-01-01
相关资源
最近更新 更多