我希望我的C#Windows服务自动更新

Lar*_*ier 31 c# windows-services upgrade

是否有一个框架可用于使C#Windows服务能够自动检查更新版本并自行升级?我当然可以编写代码来实现这一目标,但我正在寻找一个已经实现并且(最重要的)测试的框架.

[edit]这是一个类似问题的链接,其中包含指向现代项目的链接,可帮助实现此目的:自动更新.NET库?

ste*_*hbu 16

卸载类型的唯一方法是销毁appdomain.要做到这一点,需要将托管层与执行的服务代码分开 - 这非常复杂.(有点像做锁孔手术)

可能更容易a)运行批处理任务或b)服务中检测更新然后启动一个单独的进程,停止服务,更新程序集等,然后重新启动它.

如果您对前者感兴趣,那么MSDN模式和实践民间会编写一个应用程序更新程序块,您可以根据自己的服务进行调整.

https://web.archive.org/web/20080506103749/http://msdn.microsoft.com/en-us/library/ms978574.aspx

  • 我知道这是一个老问题,但我还想补充一点,目前拥有足够资源以“正确方式”做事的公司,例如 Adob​​e 和 Google,也已经选择了单独服务-用于检查更新模式。他们可能没有使用 C#,他们的项目可能与您的项目不相似,但我认为承认这是一个具有真正好处的真正解决方案,而不仅仅是一个目前足够好的 hack 至少是有用的。 (2认同)
  • 服务故事在重新启动时安装 - 强制(由应用程序)或在下次重新启动时安装。选择你的毒药。 (2认同)