任何方式来重写.NET Windows服务名称,而不重新编译?
我有一个Windows服务可执行文件,我知道是写在.NET中,我需要安装在不同的服务名称,以避免冲突。 安装不提供指定服务名称。 如果我只能访问二进制文件,那么在使用installutil进行安装时,是否有重写服务名称?
你必须使用InstallUtil吗? 下面是使用sc来完成你想要的命令:
sc create MyService binPath= "MyService.exe" DisplayName= "MyService" sc description MyService "My description"
参考: http : //support.microsoft.com/kb/251192
InstallUtil不允许您configuration服务名称。 我一直这样做
InstallUtil.exe /servicename="<service name>" "<path to service exe>"
- 将项目安装程序添加到您的服务
-
添加方法来获取CustomService名称
private void RetrieveServiceName() { var serviceName = Context.Parameters["servicename"]; if (!string.IsNullOrEmpty(serviceName)) { this.SomeService.ServiceName = serviceName; this.SomeService.DisplayName = serviceName; } }
-
调用安装和卸载
public override void Install(System.Collections.IDictionary stateSaver) { RetrieveServiceName(); base.Install(stateSaver); } public override void Uninstall(System.Collections.IDictionary savedState) { RetrieveServiceName(); base.Uninstall(savedState); }
-
installutil /servicename=”My Service [SysTest]” d:\pathToMyService\Service.exe
资源
这完全适合我!
我希望有人可以使用这个。
尝试使用sc.exe安装您的服务。 快速search将产生大量的文档。 使用该工具,可以轻松修改现有服务和/或添加新服务(包括名称)。
编辑:我用这个工具安装我的.NET服务。