我有一个作为服务运行的应用程序,我希望它能够检查URL以查看是否有新版本,如果可以,则下载并安装它。我可以手动破解某些东西,但如果我可以创建一个MSI包来更新服务以及属于我的发行版的任何其他组件,那将会很棒。我也希望它没有任何UI,所以用户不知道更新。
对此有什么好的解决方案吗?
答案 0 :(得分:2)
这可能很棘手,具体取决于您的更新可能要执行的操作。
如果您打算删除并重新安装该服务,可能需要重新启动,这对用户来说肯定是可见的。
为了替换服务的组件,必须首先停止服务。如果您的服务本身正在检测更新可用性,则可能必须启动另一个进程来停止服务,运行安装程序/更新程序,然后重新启动该服务。
答案 1 :(得分:2)
试试installer.codeeffects.com。它有这个功能。
答案 2 :(得分:1)
您可以尝试使用MEF(http://www.codeplex.com/MEF)并使用
[Import("http://someUrl/someComponent")]
public ISomeComponent SomeService;
它实际上不是自动更新,但服务可能始终是最新的。我不确定它是否有效..它只是一个想法:-)