ClickOnce部署Windows服务?

时间:2009-01-20 04:16:44

标签: c# visual-studio-2008 windows-services clickonce

是否可以使用ClickOnce部署Windows服务?如果是这样,你是如何实现这一目标的?

目前我们必须使用部署项目,使用ClickOnce可以大大简化安装过程。

4 个答案:

答案 0 :(得分:29)

AFAIK你无法真正使用ClickOnce端到端来部署服务;文件位置存在问题(ClickOnce安装到用户的配置文件中)和安装(ClickOnce 很大程度上无副作用)。

但是,您可以将服务编写为可以从服务列表like so自行安装/卸载的exe;基本上,你把它写成一个控制台exe并处理一些命令行args,使用AssemblyInstaller来从当前程序集中安装。另一个优点是可以使用相同的方法来帮助调试,因为您可以从命令行运行它。

答案 1 :(得分:8)

答案 2 :(得分:1)

而不是ClickOnce,我喜欢使用Inno Setup的方法,就像在这里https://stackoverflow.com/a/1450051/396200

您可以更好地控制将要复制和执行的内容和方式。

正如Marc Gravell在他的回答中所说,我创建了一个自我安装我的服务的exe,然后使用Inno Setup来打包和部署它。安装Inno安装程序后,它会自动运行exe,然后我的exe安装我的服务。

答案 3 :(得分:-9)

您可以使用ClickOnce部署来安装Windows服务。但是根据我的经验,每次发布更新时,都需要用户干预,这通常会破坏程序作为Windows服务运行的原因。

然而,我从未完全为Windows服务解决的一个问题是运行installutil.exe将服务安装到Windows服务列表中。但对于我部署的情况来说,这不是问题。