2

卸载我的应用程序时,如果它正在运行,它会尝试停止它:

在此处输入图像描述

可悲的是,自动关闭并没有真正起作用,它显示了这个错误:

在此处输入图像描述

我的应用程序消失了,窗口、托盘栏图标都消失了。但我仍然可以在进程列表中看到它们。

我猜 Windows 会向应用程序发送一个信号以正常退出并且 UI 会这样做,但是有一些挥之不去的线程阻止进程终止。

Windows Installer 如何在卸载期间关闭应用程序?

一旦我知道这一点,我想在调试我的应用程序时模拟它以查看发生了什么。这是一个合理的计划吗?

4

1 回答 1

5

从 Windows Vista 开始,Windows Installer 将利用重新启动管理器来识别、关闭和重新启动应用程序。Microsoft 关于Using Restart Manager的文档,特别是Using Restart Manager with a Primary Installer应该是实现测试工具的可靠起点。您的应用程序和服务应该遵循应用程序和服务指南

应用程序指南讨论了重启管理器发送给您的应用程序的消息;服务通过服务控制管理器重新启动。从理论上讲,您可以在该级别模拟重启管理器,但我怀疑如果可能的话,通过调用真实的东西,注册一个精心选择的资源列表以仅针对您的应用程序,您会得到更好的服务。

于 2018-05-10T14:01:54.753 回答