将Windows应用程序转换为Windows服务

时间:2014-12-11 12:44:58

标签: c# windows-services windows-applications

我有一个Windows应用程序,我想用WINDOWS SERVICE运行它。我已经创建了一个WINDOWS SERVICE应用程序,现在如何在这个Windows服务应用程序中集成我的WIN APP?

1 个答案:

答案 0 :(得分:1)

这是一个非常常见的要求,我建议您考虑以下事项: 我的代码将使用以下包:TopShelf

之后:

nuget Install-Package Topshelf

在你的开始时有如下内容:

    public static int Main()
    {
        var exitCode = HostFactory.Run
        (
            c =>
            {
                c.Service<Service>
                (
                    sc =>
                    {
                        sc.ConstructUsing(name => new Service());

                        sc.WhenStarted((service, hostControl) => service.Start(hostControl));

                        sc.WhenStopped((service, hostControl) => Service.Stop(hostControl));
                    }
                );

                c.SetServiceName("ServiceName");

                c.SetDisplayName("DisplayName");

                c.SetDescription("Description");

                c.EnablePauseAndContinue();

                c.EnableShutdown();

                c.StartAutomaticallyDelayed();

                c.RunAsLocalSystem();
            }
        );

        return (int)exitCode;
    }

并按照可用的配置进行操作 TopShelf configuration

我们在很多项目中使用TopShelf,它完全满足我们的需求。