Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更改windows服务的名称?_C#_Windows_Windows Services - Fatal编程技术网

C# 如何更改windows服务的名称?

C# 如何更改windows服务的名称?,c#,windows,windows-services,C#,Windows,Windows Services,我有一个用C#开发的windows服务应用程序。同一服务需要使用不同的配置文件运行。要在同一台机器上运行这些服务,我需要更改服务的名称。我可以创建解决方案的多个副本,但不确定如何更改服务的名称 谢谢Windows服务的配置存储在注册表中,HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\services…您可能需要更改密钥的名称(“文件夹”和此处服务的真实名称)和值“显示名称” 最好是,避免错误的注册表编辑造成问题。尽管SC无法就地重命名服务,但它确

我有一个用C#开发的windows服务应用程序。同一服务需要使用不同的配置文件运行。要在同一台机器上运行这些服务,我需要更改服务的名称。我可以创建解决方案的多个副本,但不确定如何更改服务的名称


谢谢

Windows服务的配置存储在注册表中,HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\services…您可能需要更改密钥的名称(“文件夹”和此处服务的真实名称)和值“显示名称”


最好是,避免错误的注册表编辑造成问题。尽管SC无法就地重命名服务,但它确实允许您删除和创建服务(请确保所有设置都正确!)。

在从
ServiceBase
派生的win服务类中,有一个继承的属性,您可以将其设置为
ServiceName
。您可以创建app.config,为服务名称添加设置,并让win服务类相应地分配该属性。这样,只要您更改app.config中的设置,每个服务名称都将是唯一的。

还可以通过ProjectInstaller设计模式编辑服务名称。在ServiceInstaller中有一个名为ServiceName的属性,如果我的问题有点让人困惑,很抱歉。。。我想更改解决方案本身中服务的名称。如何做到这一点?如果有人需要,这个例子会更详细地介绍它:对于Joel的链接,如何从安装程序中从app.config获取ServiceName的细节对我来说不起作用(可能已经过时了,因为它是为.NET 2.0编写的),但是这个解决方案工作得很好:另外,事件日志中出现的名称是在服务设计模式本身中通过属性ServiceName设置的。