我在c#中创建了一个Windows服务,我正在尝试使用installutil安装它进行调试,如下所示:http://msdn.microsoft.com/en-us/library/sd8zc8ha.aspx
installutil表示安装已完成。但是,服务控制管理器中没有任何内容。
我在Server 2008和XP上尝试了相同的结果。
有什么想法吗?
答案 0 :(得分:5)
我的一位同事有一个或多或少相同的问题。
您是否在项目中添加了安装程序?对于要安装的服务,您需要向Visual Studio项目添加安装程序。 在Visual Studio中添加安装程序的最简单方法是在设计模式下打开服务,右键单击设计区域并选择添加安装程序。这将添加一个文件ProjectInstaller.cs,其中包含一个ServiceInstaller对象和一个ServiceProcessInstaller对象。 添加安装程序后,您可以设置服务名称,描述以及安装服务时将使用的其他选项。如果您现在尝试使用InstallUtil,则应安装您的服务,并且该服务应显示在“服务”列表中。
答案 1 :(得分:4)
我遇到了类似的问题(构建安装程序,没有错误,services.msc
中没有服务),但是我有一个不同的解决方案,因为我配置了安装程序。
就我而言,服务项目的Application Properties
(Alt-Enter,应用程序选项卡)启动对象为(not set)
,如下所示:
选择默认。程序并重建服务和安装程序(services.msc
中显示了服务)。
设置此属性是the MSDN service installer walkthrough中引用的this SO answer.中的步骤之一。请务必遵循所有步骤!
答案 2 :(得分:1)
我不能专门针对任何C#或.NET错误的问题,但我已经写了一个安装服务必须发生的事情,并以广泛记录的框架的形式工作(来源)用于编写services in Lua的代码。我在这里提供它作为另一种方式的例子,因为有时只是从另一个角度看待事物可能会有所帮助。
免责声明:它非常符合alpha质量水平,是的,我是它的作者。
该框架具有与Windows SCM交互以安装和删除服务所需的所有代码。