如何使我的应用程序兼容Windows RestartManager?

问题描述 投票:0回答:1

是否有任何好的文章可以详细解释 RestartManager 以及如何让应用程序感知并处理特殊消息以便正确关闭?

我有两个应用程序是通过 Visual Studio 安装项目中的 MSI 安装程序构建安装的。 其中一个应用程序是 WPF 应用程序,另一个是在 Kestrel Web 服务器中运行的 Web API 应用程序。

这两个应用程序在后台运行

当我们有另一个版本的 MSI 安装程序时,PackageCodeProductCode 会相应更新为 Version 编号,当您尝试安装新文件时,会显示 FileInUse 窗口,并且 MSI 安装程序可以不要关闭正在运行的应用程序。

我发现了 RestartManager 和应用程序指南 -> https://learn.microsoft.com/en-us/windows/win32/rstmgr/guidelines-for-applications

但不确定如何使我的应用程序了解 RestartManager 并在更新或卸载可用时关闭。

我的应用程序安装在 Windows 10 或更高版本中。

我尝试在 WPF 应用程序中处理 WM_ENDSESSION 消息,但未能正常工作...

.net wpf installation windows-installer windows-restart-manager
1个回答
0
投票

致电

RegisterApplicationRestart
WM_QUERYENDSESSION
是您致电的最后机会,但您可以尽早致电)。

确切的命令行应该是什么取决于您,它可能像

/restart
一样简单,或者如果您需要将状态信息存储在特定文件中,您可能需要类似
/restore "c:\myfolder\appstate.ini"
之类的东西。当重启管理器启动您的应用程序时,它将使用您注册的命令行参数启动。

© www.soinside.com 2019 - 2024. All rights reserved.