WiX工具集 - 处理安装后再次运行安装程序的情况

时间:2018-04-03 20:08:03

标签: wix

我有一个自定义引导程序(C#WPF),它运行良好。如果安装程序在安装后从命令行运行,则会打开一个窗口,允许用户选择是否要修改,修复或卸载。到现在为止还挺好。修改模式启动UI,最终调用Bootstrapper.Plan(LaunchAction.Modify)。问题是,如果我从启动器UI调用它,它立即抱怨先前的安装需要重新启动。

我没有找到任何关于这应该做的好例子。甚至WiX邮件列表都是空白的。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

对于重新启动消息的屏幕截图会有所帮助 - 只是为了了解它可能来自何处以及获取要搜索的文字字符串。你自己看过WiX源代码了吗? (WiX 3.111 branch

我开始写很多关于重启的内容。不好。也许只是一些问题:

  1. 每次调用修改时都会发生这种情况吗?它是否可以在多台计算机上重现?或者也许只是Windows Update在问题计算机上运行?

  2. 我假设您已重新启动计算机,并在重新启动捆绑包时再次看到问题?

  3. 您是否在初始安装期间安排MSI文件中的任何重新启动?

  4. 您是否可以尝试运行此答案中的测试VBScript:WiX behaving badly on XP machine with windows update issues以检查脚本是否报告需要重新启动?

  5. 除此之外,我猜你可以尝试在调试模式下运行自己烧(不确定要运行多少个管道)或者可能先尝试ProcMon.exe session看看如果你能看到明显的东西。后者应该很快做到吗?

    您可以搜索一些注册表位置,以查看是否可以找出触发重启警告的内容。 Get-PendingReboot-Query。并a similar PowerShell script

答案 1 :(得分:0)

所以最后是用户错误。 :-(好吧。我确实学到了很多关于如何弄清楚Windows如何检查重启等的需要。

这个问题最终很简单。在修改运行期间,它正在卸载,然后重新安装许多服务。问题是当它运行时(看到你必须将其设置为修复以使其工作)它会再次复制所有文件,并且服务仍然在安装开始时运行。修复是在实际文件复制开始之前卸载可能锁定文件的任何内容,这解决了我的问题。

感谢您的帮助,所有信息帮助我向不同方向看,直到找到问题为止。一如既往的令人敬畏的社区!