C# 如何使用安装程序包安装用.Net编写的windows服务?

C# 如何使用安装程序包安装用.Net编写的windows服务?,c#,.net,windows-services,installation,installutil,C#,.net,Windows Services,Installation,Installutil,我彻底地遵循了微软。我特别看到: static void Main(字符串[]args) { ServiceBase[]ServicesToRun; ServicesToRun=新的ServiceBase[] { 新MyNewService(args) }; ServiceBase.Run(ServicesToRun); } 使用教程中介绍的相应的ProjectInstaller,我能够以installutil教程中介绍的方式成功安装该服务 现在,上面的代码表明我可以使用该程序安装一系列服务。

我彻底地遵循了微软。我特别看到:

static void Main(字符串[]args)
{
ServiceBase[]ServicesToRun;
ServicesToRun=新的ServiceBase[]
{
新MyNewService(args)
};
ServiceBase.Run(ServicesToRun);
}
使用教程中介绍的相应的
ProjectInstaller
,我能够以
installutil
教程中介绍的方式成功安装该服务

现在,上面的代码表明我可以使用该程序安装一系列服务。例如,我建立了几个服务,并提出了以下类型的代码:

static void Main(字符串[]args)
{
ServiceBase[]ServicesToRun;
ServicesToRun=新的ServiceBase[]
{
新服务1(args),
新服务2(args),
新服务3(args),
新服务4(args)
};
ServiceBase.Run(ServicesToRun);
}
同样,使用相应的
ProjectInstaller
,使用
installutil
安装这4个服务也可以。我安装了我的服务,甚至可以运行它们

但是,我无法找到将其打包到安装程序包中的方法。提到ClickOnce、WiX和InstallShield软件包安装程序。在我的开发团队中,我们使用。这些安装程序包似乎都没有在文档中显示如何使用上述4-services
Main
程序安装服务。每次,我都会看到如何一次安装一个服务。例如,我可以为我的每个服务编写一个上面的
Main
程序,并将这些程序打包到我的安装程序包中


可能吗?怎么用?我真的不想为我的每个服务创建一个VisualStudio项目来安装它们。如果无法使用上述服务阵列实现,我有什么可能性?

您可以尝试使用包含所有要安装的服务的安装项目。 但是您需要安装Microsoft Visual Studio安装程序项目插件(框图标) 本指南可帮助您:
可能在安装项目上添加自定义操作时,您可以添加更多服务以包含在安装文件中。

您可以尝试使用包含所有要安装的服务的安装项目。 但是您需要安装Microsoft Visual Studio安装程序项目插件(框图标) 本指南可帮助您:
也许当您在安装项目上添加自定义操作时,您可以添加更多服务以包括在安装文件中。

IIRC,您可以使用wix中的
installutil
逻辑复制相同的操作,甚至在msi安装期间调用
installutil
,使用wix创建。你已经试过哪个安装程序了?对不起,我被你的问题弄糊涂了。您是想只使用高级安装程序还是愿意使用WiX?在我发现topShelf()之前,我也曾在winservices中遇到过类似的问题。winservices突然变得非常容易创建、测试和部署,因为您只需创建常规控制台应用程序,并通过命令行参数将其安装到控制台应用程序本身。也许这对你来说也是一个选择?祝你好运。我一直在尝试WiX,直到我知道在我的团队中我们只使用高级安装程序。我会尝试并要求使用topshelf。这似乎是一个很好的工具。谢谢你的建议!IIRC,您可以在wix中使用
installutil
逻辑复制相同的内容,甚至可以在msi安装期间调用
installutil
,使用wix创建。你已经试过哪个安装程序了?对不起,我被你的问题弄糊涂了。您是想只使用高级安装程序还是愿意使用WiX?在我发现topShelf()之前,我也曾在winservices中遇到过类似的问题。winservices突然变得非常容易创建、测试和部署,因为您只需创建常规控制台应用程序,并通过命令行参数将其安装到控制台应用程序本身。也许这对你来说也是一个选择?祝你好运。我一直在尝试WiX,直到我知道在我的团队中我们只使用高级安装程序。我会尝试并要求使用topshelf。这似乎是一个很好的工具。谢谢你的建议!