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

本文关键字:应用程序 设置 项目 服务 Windows vs2012 中为 | 更新日期: 2023-09-27 18:17:48

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

谁能给一个澄清如何正确地创建windows服务应用程序在vs2012中的设置项目

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

我认为这个问题太笼统了,因为你没有发布你的代码样本。无论如何,看看topshelf项目,它基本上使创建带有安装程序的windows服务变得非常容易,并且能够将服务作为控制台应用程序进行调试。

这是一个来自文档的示例windows服务,您可以通过简单地编译project,然后从命令行编译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
    }
}