如何安装在.NET 3.5中开发的Windows服务?

时间:2009-10-09 03:19:26

标签: c# .net windows-services

我使用Visual Studio 2008开发了一个Windows服务。我想在没有安装Visual Studio但安装了.NET 3.5的机器上安装该服务。

通常,InstallUtil.exe将用于安装Windows服务,但.NET 3.5中不提供InstallUtil.exe实用程序。当我尝试使用.NET 2.0安装该服务时,该服务将显示在服务列表中,但在启动服务时,Windows服务错误1053即将到来。我们如何避免这个问题并成功安装服务?

4 个答案:

答案 0 :(得分:8)

这实际上非常简单,就像几天前我做的那样。

因此,在您的服务项目中,您希望:

  1. 在解决方案资源管理器中,双击您的服务.cs文件。它应该显示一个全灰色的屏幕,并讨论从工具箱中拖动内容。
  2. 然后右键单击灰色区域并选择添加安装程序。这会将安装程序项目文件添加到您的项目中。
  3. 然后,您将在ProjectInstaller.cs(serviceProcessInstaller1和serviceInstaller1)的设计视图中拥有2个组件。然后,您应该根据需要设置属性。
  4. 现在您需要制作一个安装项目。最好的办法是使用设置向导。

    1. 右键单击您的解决方案并添加新项目:添加>新项目>设置和部署项目>设置向导
    2. 在第二步中选择“为Windows应用程序创建安装程序。”
    3. 在第3步中,选择“主要输出来自...”
    4. 点击完成。
    5. 现在您需要编辑安装程序以确保包含正确的输出。

      1. 右键单击解决方案资源管理器中的安装项目。
      2. 选择查看>编辑>自定义操作。
      3. 右键单击“自定义操作”树中的“安装”操作,然后选择“添加自定义操作...”
      4. 在“在项目中选择项目”对话框中,选择“应用程序文件夹”,然后单击“确定”。
      5. 单击“确定”以选择“主要输出...”选项。应该创建一个新节点。
      6. 对提交,回滚和卸载操作重复步骤4 - 5。
      7. 现在只需构建安装程序,它将生成一个MSI和一个setup.exe。选择您要用于部署服务的任何一个。

答案 1 :(得分:4)

对于.Net 2.0和VS2005,有一个Microsoft KB。该程序在.Net 3.5和VS2008中完全相同。

http://support.microsoft.com/kb/317421

这是一篇更好的文章,图片更清晰。 (有时KB不像你在其他地方找到的教程那么友好。)

http://aspalliance.com/1316_Working_with_Windows_Service_Using_Visual_Studio_2005.3

答案 2 :(得分:1)

如果您一直使用InstallUtil.exe来安装Windows服务,那么这意味着您已将ProjectInstaller组件添加到您的服务中。所有InstallUtil.exe都使用反射来查找服务中嵌入的安装程序组件并在其上执行一些方法。因此,您可以修改Windows服务以自行安装和卸载,即您不再需要依赖目标计算机上可用的InstallUtil.exe 。我已经成功使用了几个月了。只需按照我提供的here步骤操作即可。这个想法最初属于Marc Gravell和post

答案 3 :(得分:0)

消息:

  

“错误1053:服务未响应启动或控制   请及时提出要求。“

通常是对启动Windows服务的问题的一般响应。你应该做的是检查事件日志,你可能会发现阻止服务启动的真正的错误。