¿Cómo puedo instalar un servicio de Windows en una máquina que no tiene Visual Studio instalado?

Resuelto Rookie Programmer Aravind asked hace 14 años • 12 respuestas

La única forma de instalar el servicio de Windows que conozco es usando el " Símbolo del sistema de Visual Studio 2008 ". ¿Hay alguna forma de instalar el servicio de Windows en una máquina que no tenga Visual Studio instalado (supongamos que .Net versión 2.X es instalado.)

Aceptado

puedes hacerlo con installUtilel que reside en la carpeta .net framework (en mi máquina es C:\Windows\Microsoft.NET\Framework\v2.0.50727).

Klaus Byskov Pedersen avatar Apr 08 '2010 12:04 Klaus Byskov Pedersen

Puede instalar los servicios de Windows como MSI. Cree el MSI como un proyecto normal adjunto a su proyecto de servicio.

En su proyecto de servicio, cree una clase de instalador y agregue los componentes serviceInstaller y serviceProcessInstaller y configúrelo según sea necesario. Agregue la salida del proyecto del proyecto de servicio al proyecto MSI, establezca las acciones personalizadas del proyecto MSI para instalar, confirmar, revertir y desinstalar a la salida del proyecto de servicio.

Modifique el Proyecto MSI de cualquier otra forma que desee, cree el MSI y luego podrá instalar su Servicio en cualquier máquina con Windows sin VS.NET o utilizando la aplicación de utilidad InstallUtil. El MSI también se encargará de la desinstalación, etc.

Hay propiedades del componente serviceProcessInstaller que puede configurar para que la cuenta ejecute el servicio; el serviceInstaller contiene propiedades que se pueden configurar, como el nombre del servicio. Tendrá que configurar el nombre del servicio y su padre. MSDN proporcionará buena información sobre cómo utilizar ambos componentes.

Ivan Dormain avatar Apr 09 '2010 06:04 Ivan Dormain

Página de MSDN relevante: http://msdn.microsoft.com/en-us/library/sd8zc8ha%28VS.80%29.aspx

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil.exe yourproject.exe

No es necesario tener instalado Visual Studio para que esto funcione.

Tiberiu Ana avatar Apr 08 '2010 12:04 Tiberiu Ana

Sí, installutil.exefunciona bien, pero me cansé de tener que acordarme de iniciar el símbolo del sistema de Visual Studio 2008 para poder usarlo. Invariablemente, abría una consola normal sólo para darme cuenta de que la installutil.exeubicación no era parte del camino.

Afortunadamente, installutil.exees un contenedor de un conjunto de llamadas de reflexión. Desde MSDN,

Installutil.exeutiliza la reflexión para inspeccionar el ensamblaje especificado y encontrar todos Installerlos tipos con el RunInstallerAttributeconjunto en verdadero. Luego, la herramienta ejecuta el método de instalación o el método de desinstalación en cada instancia del Installertipo.

Lo que esto significa es que es posible agregar código al servicio de Windows para que se instale y desinstale solo. Al hacerlo, ya no necesito installutil.exeel símbolo del sistema de Visual Studio 2008 para ejecutarlo.

He proporcionado una guía paso a paso sobre cómo hacer esto aquí . La -installopción instala el servicio de Windows y lo inicia. Por el contrario, la -uninstallopción detiene el servicio y lo desinstala.

Matt Davis avatar Apr 08 '2010 14:04 Matt Davis