我使用Visual Studio 2008用C#创建了一个Windows服务,基本上按照下面的步骤进行操作:
http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx我像文章中所述创建了一个安装程序,并运行它...安装程序将我的服务安装到C:\Program Files\Product etc....
,但是它却没有出现在服务列表中。
我还漏掉了什么吗?
我使用Visual Studio 2008用C#创建了一个Windows服务,基本上按照下面的步骤进行操作:
http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx我像文章中所述创建了一个安装程序,并运行它...安装程序将我的服务安装到C:\Program Files\Product etc....
,但是它却没有出现在服务列表中。
我还漏掉了什么吗?
如何将自定义操作添加到安装程序项目
1. 在解决方案资源管理器中,右键单击安装程序项目,指向“查看”,然后选择“自定义操作”。出现“自定义操作编辑器”。
2. 在“自定义操作编辑器”中,右键单击“自定义操作”节点,选择“添加自定义操作”,打开“项目中选择项”对话框。
3. 在列表框中双击应用程序文件夹以打开它,选中“MyNewService(Active)”下的主要输出,并单击“确定”。主要输出添加到所有四个自定义操作节点-安装、提交、回滚和卸载。
4. 构建安装程序项目。
如果您跳过这些步骤,您的安装程序项目将构建并将文件复制到正确的目录;但是,如果不执行上述步骤,您的二进制文件将不会被注册为服务。
我还需要注意的是,这对于早期版本的 Visual Studio(带有内置的 Setup/Deployment 项目模板)有效。新版本的 Visual Studio 有不同的设置/部署项目(一些需要第三方软件)。
我建议您了解 WiX 工具集,并在此处查看 WiX 安装 Windows 服务。
我被这个问题搞崩了,所以我把解决方法放在这里,以防其他人也遇到同样的问题。
如果你按照指南中的说明操作,但仍然无法安装,请确保你的Installer类是公有的(public),内部的(internal)不行。
我遇到过类似的问题,后来发现我从未为ServiceInstaller设置过父级。
双击项目安装程序,在设计器中应该显示一个Service Installer和Process Installer。当你点击其中任何一个并查看属性时,你应该注意到父级属性必须都设置为Project Installer类名。
或者,如果你在代码中实现,一定要确保设置:
serviceInstaller.Parent = this;
serviceProcessInstaller.Parent = this;
http://www.codeproject.com/Tips/575177/Window-Service-Deployment-using-VS
以下是自定义操作设置教程(大小写敏感):在搜索之前,请记得检查您所命名的服务名称。(右键单击 -> 属性 -> 检查服务名称)
按照这些说明操作,它们对我起作用了。对于设置,该部分位于文章底部附近。