1

是否可以/建议使用InstallService元素安装以托管代码 (C#) 编写的 Windows 服务?(我试过了,它确实安装了服务,但服务不会启动)

或者这是否需要调用 Installutil 的自定义操作?

还是有其他方法可以做到这一点?

4

2 回答 2

3

我自己现在正在研究 wix,并且刚刚成功地使用标准的 ServiceInstall/ServiceControl 方式安装/卸载了托管服务(如果我们可以只使用sc ,为什么不这样做)。从我阅读并同意的内容来看,使用 installutil 的自定义任务被认为是一种不好的做法:我曾经在我的 .net 安装程序中安装 perf 计数器,但现在我将采用wix 方式

顺便说一句,我必须添加一个 ServiceControl 元素,以便在安装后启动服务(启动属性),更重要的是,对我来说,在卸载期间完全卸载(删除属性)。

  <ServiceControl Id='ControlStansWinService' Remove='both' Name='StansWinService' Start='install' Stop='both' Wait='yes' />

到目前为止,我已经在这里发表了我的发现,希望你能发现它有用。

于 2010-11-20T22:49:34.737 回答
0

您应该使用 WIX InstallService 元素,因为它完成了安装服务以及在安装和卸载时启动和停止/删除服务的所有工作。如果您使用自定义操作调用 InstallUtil 来安装服务,那么您必须使用 CustomAction 再次手动启动和停止服务。

于 2010-11-21T04:36:12.960 回答