2010-12-23 19 views
6

Tengo un archivo exe con un servicio de Windows. Para instalarlo, yo uso el comando:Instalar el servicio de Windows con nombre personalizado

installutil MiServicio.exe/ShowCallStack

Entonces, puedo ver el "service1" que aparece en la ventana de Servicios.

Mi pregunta es si es posible instalar 2 instancias del mismo servicio (usando el mismo exe) pero con diferentes nombres. Quiero hacer eso sin cambiar el código fuente.

Gracias

Respuesta

0

He utilizado algo parecido a la secuencia de comandos a continuación en el pasado. Edite los nombres del servicio, guárdelo como un VBS y ejecútelo.

Const ExistingServiceName = "Service1" 
strComputer = "." 

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
set objExistingService = objWMIService.Get("Win32_Service.Name='" & ExistingServiceName & "'") 

Set objService = objWMIService.Get("Win32_BaseService") 

Const NewServiceName = "Service2" 

errReturn = objService.Create (NewServiceName, NewServiceName, objExistingService.PathName, OWN_PROCESS ,NOTIFY_USER ,"Manual" , NOT_INTERACTIVE ,".\LocalSystem" ,"") 
2

¿Su servicio tienen una clase ProjectInstaller? Si agrega un ProjectInstaller a su servicio, puede editar la propiedad DisplayName del ServiceInstaller del ProjectInstaller. Esto cambiará el nombre de "Service1" a lo que quieras que sea. Puede encontrar un tutorial sobre ProjectInstallers en MSDN here.

0

es posible utilizar InstallUtil.exe.config durante la instalación del servicio, por lo que mi truco sucio estaba mirando como:

En ProjectInstaller.designer.cs

 this.Service1.Description = ConfigurationManager.AppSettings["ServiceDescription"] != null ? ConfigurationManager.AppSettings["ServiceDescription"] : "bla, bla, bla"; 
     this.Service1.DisplayName = ConfigurationManager.AppSettings["DisplayName"] != null ? ConfigurationManager.AppSettings["DisplayName"] : "Service One"; 
     this.Service1.ServiceName = ConfigurationManager.AppSettings["ServiceName"] != null ? ConfigurationManager.AppSettings["ServiceName"] : "Service1"; 

en InstallUtil.exe .config:

<configuration><appSettings><add key="ServiceName" value="Service1" /><add key="DisplayName" value="Service One" /><add key="ServiceDescription" value="bla, bla, bla" /></appSettings></configuration> 

no puede conseguir la forma de publicar xml aquí

vítores

Cuestiones relacionadas