Windows窗体应用程序中的Windows服务
本文关键字:Windows 服务 应用程序 窗体 | 更新日期: 2023-09-27 18:19:40
我使用c#创建了一个windows窗体应用程序。现在我需要添加一个windows服务和这个应用程序。我添加了一个新的windows服务并添加了安装程序。我创建了windows安装程序并将其安装在电脑上,但该服务无法运行。我是C#的新手。请帮助我将此服务添加到安装程序中。
WinForms应用程序和Windows服务项目模板具有不同的引导程序代码(请参阅项目中的"Program.cs"文件)。
这个来自Windows窗体:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
这个来自Windows服务:
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1()
};
ServiceBase.Run(ServicesToRun);
如果您想将这些类型的应用程序组合到一个可执行文件中,您需要稍微修改引导程序代码:
// we need command line arguments in Main method
[STAThread]
static void Main(string[] args)
{
if (args.Length > 0 && args[0] == "service")
{
// runs service;
// generated bootstrap code was simplified a little
ServiceBase.Run(new[]
{
new Service1()
});
}
else
{
// runs GUI application
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
现在,在安装服务时,需要设置命令行参数来运行可执行文件:myExe service
。