我在vs 2012中有一个Windows服务应用程序,我已经为它创建了一个安装项目。问题是,当我运行安装程序时,它会在目录中安装应用程序文件,但服务本身未列在“任务管理器的服务”中。所以服务设置不正确
任何人都可以澄清如何在vs2012中正确创建Windows服务应用程序的设置项目。
答案 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
}
}