我有一个自定义引导程序(C#WPF),它运行良好。如果安装程序在安装后从命令行运行,则会打开一个窗口,允许用户选择是否要修改,修复或卸载。到现在为止还挺好。修改模式启动UI,最终调用Bootstrapper.Plan(LaunchAction.Modify)。问题是,如果我从启动器UI调用它,它立即抱怨先前的安装需要重新启动。
我没有找到任何关于这应该做的好例子。甚至WiX邮件列表都是空白的。
有什么想法吗?
答案 0 :(得分:0)
对于重新启动消息的屏幕截图会有所帮助 - 只是为了了解它可能来自何处以及获取要搜索的文字字符串。你自己看过WiX源代码了吗? (WiX 3.111 branch)
我开始写很多关于重启的内容。不好。也许只是一些问题:
每次调用修改时都会发生这种情况吗?它是否可以在多台计算机上重现?或者也许只是Windows Update在问题计算机上运行?
我假设您已重新启动计算机,并在重新启动捆绑包时再次看到问题?
您是否在初始安装期间安排MSI文件中的任何重新启动?
您是否可以尝试运行此答案中的测试VBScript:WiX behaving badly on XP machine with windows update issues以检查脚本是否报告需要重新启动?
除此之外,我猜你可以尝试在调试模式下运行自己烧(不确定要运行多少个管道)或者可能先尝试ProcMon.exe session看看如果你能看到明显的东西。后者应该很快做到吗?
您可以搜索一些注册表位置,以查看是否可以找出触发重启警告的内容。 Get-PendingReboot-Query。并a similar PowerShell script。
答案 1 :(得分:0)
所以最后是用户错误。 :-(好吧。我确实学到了很多关于如何弄清楚Windows如何检查重启等的需要。
这个问题最终很简单。在修改运行期间,它正在卸载,然后重新安装许多服务。问题是当它运行时(看到你必须将其设置为修复以使其工作)它会再次复制所有文件,并且服务仍然在安装开始时运行。修复是在实际文件复制开始之前卸载可能锁定文件的任何内容,这解决了我的问题。
感谢您的帮助,所有信息帮助我向不同方向看,直到找到问题为止。一如既往的令人敬畏的社区!