在vs2012中为Windows服务应用程序设置项目

时间:2014-08-13 00:32:15

标签: c# visual-studio-2012 service installation

我在vs 2012中有一个Windows服务应用程序,我已经为它创建了一个安装项目。问题是,当我运行安装程序时,它会在目录中安装应用程序文件,但服务本身未列在“任务管理器的服务”中。所以服务设置不正确

任何人都可以澄清如何在vs2012中正确创建Windows服务应用程序的设置项目。

1 个答案:

答案 0 :(得分:0)

我认为这个问题过于笼统,因为您没有发布代码示例。 无论如何,看看topshelf project它基本上可以很容易地创建安装程序的Windows服务和调试服务作为控制台应用程序的能力。

以下是来自文档的示例Windows服务,您可以通过简单的编译项目安装它,然后从命令行安装TownCrier.exe install。您还可以卸载,设置不同的安装凭据和重试。

public class TownCrier
{
    readonly Timer _timer;
    public TownCrier()
    {
        _timer = new Timer(1000) {AutoReset = true};
        _timer.Elapsed += (sender, eventArgs) => Console.WriteLine("It is {0} an all is well", DateTime.Now);
    }
    public void Start() { _timer.Start(); }
    public void Stop() { _timer.Stop(); }
}

public class Program
{
    public static void Main()
    {
        HostFactory.Run(x =>                                 //1
        {
            x.Service<TownCrier>(s =>                        //2
            {
               s.ConstructUsing(name=> new TownCrier());     //3
               s.WhenStarted(tc => tc.Start());              //4
               s.WhenStopped(tc => tc.Stop());               //5
            });
            x.RunAsLocalSystem();                            //6

            x.SetDescription("Sample Topshelf Host");        //7
            x.SetDisplayName("Stuff");                       //8
            x.SetServiceName("stuff");                       //9
        });                                                  //10
    }
}