C#Windows服务和控制台应用程序合二为一

时间:2014-08-21 06:23:24

标签: c# windows service console

我们不断提供Windows服务,我们有一个非常好的模板,有很好的小命令行参数,便于安装等。

这是我们想要做的事情...编写一段代码,以便编译的代码可以作为服务或控制台应用程序运行,具体取决于您启动它的方式。

我们发现:

static void Main(string[] args)
{
    if (System.Environment.UserInteractive)
    {
        // You double clicked the exe
        Console.Write("You double clicked me")
    }
    else // Windows started me as a service.
    {
        ServiceBase[] ServicesToRun;
        ServicesToRun = new ServiceBase[] { new Service_Manager() };
        ServiceBase.Run(ServicesToRun);
    }
}

执行安装服务等操作是一种方法。但是不显示控制台。因此,如果不编写两个应用程序并共享DLL,是否有一种简单的方法可以包含哪些内容,以便“控制台”显示?

1 个答案:

答案 0 :(得分:0)

如果您愿意,可以使用TopShelf,这是您正在寻找的内容。

您可以编写一个实际上是Windows Srevice的应用程序,但该应用程序可以作为控制台应用程序运行。

它使调试变得更加容易