如何使用Visual Studio 2010将Windows控制台应用c#项目转换为Windows Service

本文关键字:Windows 项目 转换 Service 应用 控制台 Studio Visual 2010 何使用 | 更新日期: 2023-09-27 18:06:18

我使用本教程使用Visual Studio 2010和它的库存控制台应用程序项目创建c# Windows服务,但在我改变了一切并试图安装它之后:

"C:'Windows' microt.net 'Framework'v4.0.30319'installutil"/i myservice.exe

我在控制面板的服务列表中没有看到我的服务。然后我检查了installutil的输出,发现了这个消息:

删除InstallState文件,因为没有安装程序。

我不确定它为什么这么说,因为我确实有一个安装程序类,定义如下:

namespace MySrvr
{
    class MyServiceInstaller : System.Configuration.Install.Installer
    {
        public MyServiceInstaller()
        {
            ServiceProcessInstaller process = new ServiceProcessInstaller();
            process.Account = ServiceAccount.LocalSystem;
            ServiceInstaller serviceAdmin = new ServiceInstaller();
            serviceAdmin.StartType = ServiceStartMode.Automatic;
            serviceAdmin.ServiceName = "MyServiceName";
            serviceAdmin.DisplayName = "My Service Display Name";
            serviceAdmin.Description = "My Service Description";
            Installers.Add(process);
            Installers.Add(serviceAdmin);
        }
    }
}

我哪里做错了?

如何使用Visual Studio 2010将Windows控制台应用c#项目转换为Windows Service

好的,我知道了。两个错误:

  1. 安装程序类必须声明为public

  2. 前面必须有[RunInstaller(true)]属性

这样

:

namespace MySrvr
{
    [RunInstaller(true)]
    public class MyServiceInstaller : System.Configuration.Install.Installer
    {
    }
}

installutil的版本与此无关