【发布时间】:2010-02-24 18:27:35
【问题描述】:
我有一个作为服务运行的应用程序,我希望它能够检查 URL 以查看是否有新版本可用,如果有,请下载并安装它。我可以手动破解一些东西,但如果我可以创建一个 MSI 包来更新服务以及我的发行版中的任何其他组件,那就太好了。我还希望它在没有任何 UI 的情况下完成,因此用户不知道更新。
有什么好的解决办法吗?
【问题讨论】:
标签: windows-services installation
我有一个作为服务运行的应用程序,我希望它能够检查 URL 以查看是否有新版本可用,如果有,请下载并安装它。我可以手动破解一些东西,但如果我可以创建一个 MSI 包来更新服务以及我的发行版中的任何其他组件,那就太好了。我还希望它在没有任何 UI 的情况下完成,因此用户不知道更新。
有什么好的解决办法吗?
【问题讨论】:
标签: windows-services installation
这可能会很棘手,具体取决于您的更新可能想要做什么。
如果您打算删除并重新安装服务,这可能需要重新启动,这对用户来说肯定是可见的。
为了更换服务的组件,必须先停止服务。如果您的服务本身正在检测更新可用性,它可能需要启动另一个进程来停止服务,运行安装程序/更新程序,然后重新启动服务。
【讨论】:
试试installer.codeeffects.com。它有这个功能。
【讨论】:
你可以试试 MEF (http://www.codeplex.com/MEF) 并使用
[Import("http://someUrl/someComponent")]
public ISomeComponent SomeService;
它实际上不是自动更新,但服务可能始终是最新的。我不确定它是否有效.. 这只是一个想法:-)
【讨论】: