ClickOnce部署Windows服务?

是否可以使用ClickOnce部署Windows服务? 如果是这样,你怎么做到这一点?

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

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

但是,您可以将服务编写为可从服务列表中自行安装/卸载的exe文件, 如下所示 ; 基本上,你把它写成一个控制台exe文件,并处理一些命令行参数,使用AssemblyInstaller从当前程序集中[un]安装。 另一个优点是可以使用相同的方法来帮助debugging,因为您可以从命令行运行它。

我猜不是根据ClickOnce和Windows安装程序之间的select

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

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

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

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

然而,我从来没有完全为Windows服务制定一个问题,运行installutil.exe将服务安装到Windows服务列表中。 但是这对我部署的环境来说不是问题。