c#在windows上更新程序时';他还在跑步
本文关键字:他还在 windows 更新 程序 | 更新日期: 2023-09-27 18:21:09
我在一个信息亭上有一个程序,它有一个相关的服务,通过定期在网上检查MSI的更新版本来更新程序。如果它找到一个,它会安装它,程序可能仍在运行。
为了解决上述解决方案的DLL冲突,我将MSI中的程序集按版本重命名,以便在旧版本运行时安装新版本。应用程序将在安装目录中轮询较新版本的程序集,如果发现一个程序集,则在不使用时立即重新启动。有更好的方法吗?
我以前做过这个故事。它是这样工作的:
UI以登录用户的身份运行。
该服务正在作为系统运行。该服务检查内容并将其下载到临时目录。然后,它使用/JM命令通告MSI。安装程序现在可以由没有特权的用户安装。
该服务向应用程序发送一条IPC消息,表示是时候安装了。应用程序启动时,安装程序向它传递一个指示重新启动应用程序的标志。应用程序退出释放锁定的文件。
在安装程序结束时,标志会使安装程序重新启动应用程序。
还可以看看wuw4库。它有助于创建大量这样的解决方案。
ClickOnce不是更好的选择吗?
http://msdn.microsoft.com/en-us/library/t71a733d.aspx