如何在C#中添加窗口服务/安装它并通过此窗口服务运行exe(My Job.exe)?

时间:2013-04-20 05:15:06

标签: c# windows-services install

其实我想运行exe文件(My Job.exe)通过C#中的Service Service,但是当我启动计算机时应该自动启动窗口服务?

我已经手动添加了Window Service(MyService)。我还设置了我的应用程序项目,我还添加了这项服务,以便在安装应用程序时也可以安装。 我有serviceInstaller1属性

StartType=Automatic;ServiceName=MyService.

我也有serviceProcessInstaller1和Property

Account=LocalSystem;

当我运行这个时,我的Applicationo已安装,但MyService没有安装,我也没有在Service of Computer Management中看到它。

任何身体都可以帮助我,我已经花了两天时间但没有找到合适的指导。在此先感谢。

3 个答案:

答案 0 :(得分:0)

您的应用程序是如何安装的?你为它创建了一个安装程序(.msi文件)吗?听起来您正在尝试实施自己的安装程序,而不是使用现有工具来执行此操作。

我建议Advanced Installer。它是一个非常强大的安装程序生成器,具有免费版本所需的所有功能,更重要的是,它非常易于使用。此工具允许您创建一个安装向导,可以修补和卸载您的软件(包括服务,注册表值,文件等)。

答案 1 :(得分:0)

我最近在VS2010和.Net 4.5中有一个带有Windows服务的项目,用户操作系统将是Windows Server 2008.我无法长时间创建功能完备的安装,但我仍然没有,但请求已更改,所以没有需要安装文件。但我可以给你建议“怎么做”。 如果您没有购买的InstallShield版本,则需要找到一些其他程序来创建安装文件。 对于安装,您只需复制.exe输出服务和一个批处理文件将有下一个内容:

@ECHO off

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" "%~dp0%<filename>.exe"

pause

然后您需要使用此批处理文件的管理权限运行。 两个文件(.exe和.bat)必须位于同一文件夹中。 您可以删除pause命令,但之后您将无法看到服务注册是否成功。 确保您已在PC上安装了目标.NET Framework。

我希望这会对你有所帮助。

答案 2 :(得分:0)

如果您只需要在系统启动时运行您的exe文件(My Job.exe),您可以将您的exe添加到Windows Task Scheduler

使用Windows服务有什么特定目的吗?

我之所以这样说是因为你有多种选择来调用exe,如下所示

  • 根据常见的重复事件安排,即计算机启动时或用户登录时。
  • 根据日历安排,即每日,每周,每月或一次。
  • 高级选项,例如基于事件的执行等。