我刚刚构建了一个非常简单的Windows服务来测试某些内容并构建它来获取.exe。根据MSDN中的this article,我还使用Visual Studio命令提示符2010(以管理员身份运行)installutil TestService.exe
安装了该服务。
使用installutil
命令时,一切运行正常,我收到一条消息,提示已安装该服务。此外,要在“服务”节点内部(在Visual Studio的“服务器资源管理器”中)检查时启动服务,我看不到任何名为TestService.exe
的服务。
此外,开始菜单 - >我的电脑(右键) - >管理 - >服务和应用 - >服务未显示我可以通过其TestService.exe
启动服务。
有任何建议我如何启动服务?
OnStart
函数内的代码:
Process[] testProcess = Process.GetProcessesByName("notepad.exe");
if (testProcess.Length == 0)
File.WriteAllText(@"C:\Users\User1\Desktop\service.txt", "nothing");
else
File.WriteAllText(@"C:\Users\User1\Desktop\service.txt", "run");
答案 0 :(得分:9)
我之前遇到installutil
问题,发现使用sc
命令有效,而installutil
没有。
尝试使用此命令安装您的服务:
sc create servicename binPath= serviceexe.exe
答案 1 :(得分:9)
我刚遇到此问题,可以通过以下步骤解决此问题。如果您跳过这些步骤,您的安装项目将构建并将文件复制到正确的目录;但是,如果没有这些步骤,他们就不会将您的二进制文件注册为服务。
在解决方案资源管理器中,右键单击安装项目,指向“查看”,然后选择“自定义操作”。将出现“自定义操作”编辑器。
在“自定义操作”编辑器中,右键单击“自定义操作”节点,然后选择“添加自定义操作”。将出现“在项目中选择项目”对话框。
双击列表框中的应用程序文件夹将其打开,从MyNewService(Active)中选择主输出,然后单击OK。主要输出将添加到自定义操作的所有四个节点:安装,提交,回滚和卸载。
构建安装项目。
答案 2 :(得分:1)
在VS 2013中工作时,我通过右键单击项目并添加类型为Installer Class
的新项目添加安装程序时遇到了此问题。关键区别在于您需要右键点击Design View
的{{1}},然后点击Windows Service
。
有关.Net 4.5和4.6的完整详情,请参阅Creating a service,Adding Installers和Installing a Service