【发布时间】:2025-07-13 13:35:02
【问题描述】:
我有一个安装在多个远程工作站上的 Windows 应用程序(用 C# 编写...),安装由 MSI 包完成。
正在不时进行更新安装并更改程序,此时,对于每个更新,对于每个站,我们需要转到 .MSI 所在的位置,复制并运行它,然后才开始应用程序。
我希望这样:每当用户尝试启动应用程序时,都会初始化一个后台进程,该进程会将已安装的版本与 .msi 位置上的最新版本进行比较,如果需要更新将运行安装,然后启动应用程序。
问题是无法在程序内完成,因为在安装/升级时程序无法运行。另一个考虑因素是并非所有站点都同时运行,因此我无法安排及时升级,并且无法在站点启动时完成,因为有时需要在站点已经运行时进行更新(站点在我的应用旁边有几个功能)。
我考虑了几种方法,似乎 Windows 服务可以解决问题,但我不知道它是否可以“绑定”到程序的初始化以及它是否可以暂停程序以进行必要的检查和更新,而不仅仅是重新启动应用程序。
我对所有想法持开放态度,因此请不要对我的想法感到有义务...
【问题讨论】:
标签: c# windows-services windows-installer auto-update