2

我刚刚构建了一个非常简单的 Windows 服务来测试某些东西并构建它来获取 .exe。根据MSDN 中的这篇文章,我还使用 Visual Studio Command Prompt 2010 (run as administrator) 安装了该服务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");
4

3 回答 3

10

我以前遇到过问题,installutil发现使用该sc命令有效,而installutil没有。

尝试使用以下命令安装您的服务:

sc create servicename binPath= serviceexe.exe
于 2012-05-23T08:47:57.057 回答
9

我刚刚遇到了这个问题,并且能够通过以下步骤解决它。如果您跳过这些步骤,您的安装项目将构建您的文件并将其复制到正确的目录;但是,如果没有这些步骤,他们不会将您的二进制文件注册为服务。

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

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

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

  4. 构建安装项目。

于 2013-03-06T20:52:31.450 回答
1

在 VS 2013 中工作时,当我通过右键单击项目并添加类型的新项目来添加安装程序时遇到了这个问题Installer Class。主要区别在于您需要右键单击Design ViewWindows Service单击Add Installer

有关 .Net 4.5 和 4.6 的完整详细信息,请参阅创建服务添加安装程序安装服务

于 2015-07-31T14:39:16.457 回答