我在信息亭上有一个程序,该程序具有相关服务,通过定期在网上检查是否有更新版本的 MSI 来更新程序。如果它找到一个,它将安装它,该程序可能仍在运行。
为了解决上述解决方案的 DLL 冲突,我使用按版本重命名 MSI 中的程序集,以便在旧版本运行时安装新版本。该应用程序将轮询安装目录以查找较新版本的程序集,如果它在不使用时立即重新启动。有没有更好的方法来做到这一点?
我在信息亭上有一个程序,该程序具有相关服务,通过定期在网上检查是否有更新版本的 MSI 来更新程序。如果它找到一个,它将安装它,该程序可能仍在运行。
为了解决上述解决方案的 DLL 冲突,我使用按版本重命名 MSI 中的程序集,以便在旧版本运行时安装新版本。该应用程序将轮询安装目录以查找较新版本的程序集,如果它在不使用时立即重新启动。有没有更好的方法来做到这一点?
ClickOnce 在这里不是更好的选择吗?
我以前做过这个故事。它是这样工作的:
UI 以登录用户身份运行。
该服务作为系统运行。该服务检查内容并将其下载到临时目录。然后它使用 /JM 命令通告 MSI。安装程序现在可以由非特权用户安装。
该服务向应用程序发送一条 IPC 消息,说明该安装了。应用程序启动安装程序,向它传递一个指示重新启动应用程序的标志。应用程序退出释放锁定的文件。
在安装程序结束时,该标志会导致安装程序重新启动应用程序。
还要看看wuw4 库。它有助于创建很多这种解决方案。