安装后,Windows服务未出现在服务列表中

Ale*_*lex 54 c# windows-services setup-deployment visual-studio-2008

我使用Visual Studio 2008在c#中创建了一个Windows服务我几乎遵循这个:http: //www.codeproject.com/KB/dotnet/simplewindowsservice.aspx

我按照文章中的指示创建了一个安装项目,并运行它...它将我的服务安装到c:\ program files\product等....但是,它不会出现在服务列表中.

我错过了什么?

Nat*_*ate 104

您链接的文章中最重要的部分就在这里

向安装项目添加自定义操作

1.在解决方案资源管理器中,右键单击安装项目,指向"查看",然后选择"自定义操作".出现自定义操作编辑器.

2.在"自定义操作"编辑器中,右键单击"自定义操作"节点并选择"添加自定义操作".将出现"在项目中选择项目"对话框.

3.双击列表框中的应用程序文件夹将其打开,从MyNewService(Active)中选择主输出,然后单击"确定".主输出将添加到自定义操作的所有四个节点中 安装,提交,回滚和卸载.

4.建立安装项目.

如果您跳过这些步骤,您的安装项目将构建并将文件复制到正确的目录; 但是,如果没有这些步骤,他们不会将您的二进制文件注册为服务.


我还应该注意,这适用于具有内置安装/部署项目模板的旧版Visual Studio.较新版本的Visual Studio具有不同的设置/部署项目(一些需要第三方软件.)

我建议您查看WiX Toolset并在此处查看Windows服务的WiX安装.

  • 有没有办法在安装过程中启动服务?我知道您可以将 StartType 配置为 Automatic,但这只能在重新启动后启动服务。 (2认同)

xof*_*ofz 6

我被这个人所拥有,所以我把它放在这里以防万一其他人遇到它.

如果您按照指南中的说明进行操作但仍然无法安装,请确保您的安装程序类是公开的.内部不起作用.


Cla*_*wer 6

我有同样的问题然后我意识到我从未为ServiceInstaller设置父级.

双击项目安装程序.设计人员应该显示Service Installer和Process Installer.单击任一并查看属性时,应注意Parent属性,该属性必须都设置为Project Installer的类名.

或者,如果您在代码中执行此操作,请确保设置:

serviceInstaller.Parent = this;
Run Code Online (Sandbox Code Playgroud)

serviceProcessInstaller.Parent = this;
Run Code Online (Sandbox Code Playgroud)