Ben*_*Ben 24 service windows-services auto-update
我们需要创建一个能够自我更新的Windows服务.
想到三个选择,
管理第一个服务的检索,卸载和安装的第二个服务.
使用一些第三方框架(建议欢迎.我相信.NET支持自动更新Windows窗体应用程序,但不支持Windows服务)
使用插件模型,其中服务仅仅是包含更新和运行逻辑的shell,并且服务的业务逻辑包含在可以换出的DLL中.
任何人都可以解决这个问题的解决方案吗?
谢谢
小智 5
Google 有一个名为Omaha的开源框架,它完全符合您的观点 1. 所描述的。它在后台作为计划的 Windows 任务运行,在它管理的应用程序之外。Google 使用 Omaha 自动更新其 Windows 应用程序,包括 Chrome。因为它来自谷歌,而且因为它安装在每台运行 Chrome 的 Windows 机器上,所以 Omaha 非常强大。
网上有一篇文章更详细地解释了如何使用 Omaha 更新 Windows 服务。它认为 Omaha 尤其适合服务(相对于 GUI 应用程序),因为它具有异步性质。
所以你可以通过使用奥马哈来完成你的观点 2. 和 1.。恐怕我不知道你会怎么做 3。
只是我的一些想法。
1 似乎有问题,因为您最终会处理您试图解决的情况,因为在某些时候更新程序需要更新。3 听起来不错,但如果“交换”是指在运行时使用一些奇特的反射来加载 dll,我不确定性能是否会成为问题。
还有第四个选项,服务可以生成更新进程,这将允许它在运行更新可执行文件之前根据需要更新更新可执行文件。从这里开始,编写一个安装应用程序就很简单了,该服务将在关闭之前生成该应用程序。