2009-10-09 23 views
9

He desarrollado un servicio de Windows utilizando Visual Studio 2008. Quiero instalar ese servicio en una máquina donde Visual Studio no está instalado, pero está instalado .NET 3.5.¿Cómo instalar un servicio de Windows desarrollado en .NET 3.5?

Generalmente InstallUtil.exe se utilizará para instalar un servicio de Windows, pero la utilidad InstallUtil.exe no está disponible en .NET 3.5. Cuando intenté instalar ese servicio usando .NET 2.0, el servicio se muestra en la lista de servicios, pero cuando se inicia el servicio, aparece el error 1053 de servicio de Windows. ¿Cómo podemos evitar este problema e instalar con éxito el servicio?

Respuesta

4

Hay una Microsoft KB en esto para .Net 2.0 y VS2005. El procedimiento es exactamente el mismo en .Net 3.5 y VS2008.

http://support.microsoft.com/kb/317421

Y aquí es un artículo más agradable con fotos para hacerlo más claro. (A veces los de KB no son tan amable como tutoriales se pueden encontrar en otros lugares.)

http://aspalliance.com/1316_Working_with_Windows_Service_Using_Visual_Studio_2005.3

+0

Cuando VS está disponible en la máquina, no hay ningún problema al instalar el servicio. Si VS no está disponible, ¿cómo podemos instalar el servicio que se desarrolla en .Net3.5? – srv

+0

El proyecto de instalación, cuando se construye, crea un instalador (archivo .msi). Cópielo (y el archivo setup.exe que también estará en la carpeta de ese proyecto) en la máquina en la que desea instalarlo y ejecútelo como cualquier programa de instalación. Una cosa a tener en cuenta es que puede necesitar hacer clic derecho en el proyecto de instalación y elegir "compilar". De forma predeterminada, los proyectos de configuración no se crean cuando elige "Crear solución". Este molesto valor predeterminado puede ser anulado en el administrador de configuración. – David

1

Si usted ha estado usando InstallUtil.exe para instalar el servicio de Windows, entonces eso significa que ha añadido un ProjectInstaller componente a su servicio. Todo lo que hace InstallUtil.exe es usar reflection para encontrar el componente instalador incrustado en su servicio y ejecutar algunos métodos en él. Debido a esto, puede modificar su servicio de Windows para instalarlo y desinstalarlo, es decir, ya no tiene que depender de que InstallUtil.exe esté disponible en la máquina de destino. He estado usando esto con éxito desde hace varios meses. Simplemente siga el paso a paso que proporcioné here. La idea originalmente pertenece a Marc Gravell y este post.

8

En realidad es muy simple ya que hace unos días hice algo por algo que hice.

Así que en su proyecto de servicio que desea:

  1. En el Explorador de soluciones doble clic en el archivo .cs sus servicios. Debería mostrar una pantalla que es todo gris y habla sobre cómo arrastrar cosas desde la caja de herramientas.
  2. Luego haga clic derecho en el área gris y seleccione agregar instalador. Esto agregará un archivo de proyecto de instalador a su proyecto.
  3. Luego tendrá 2 componentes en la vista de diseño de ProjectInstaller.cs (serviceProcessInstaller1 y serviceInstaller1). Luego debe configurar las propiedades como lo necesita.

Ahora necesita hacer un proyecto de instalación. Lo mejor que puedes hacer es usar el asistente de configuración.

  1. Haga clic derecho sobre su solución y añadir un nuevo proyecto: Agregar> Nuevo proyecto> instalación e implementación> Asistente de configuración
  2. En el segundo paso, seleccione "Crear un programa de instalación de una aplicación de Windows."
  3. En el 3er paso, seleccione "Salida primaria desde ..."
  4. Haga clic para finalizar.

Ahora necesita editar su instalador para asegurarse de que se incluye la salida correcta.

  1. Haga clic derecho en el proyecto de instalación en su Solution Explorer.
  2. Seleccione Ver> Editor> Acciones personalizadas.
  3. Haga clic derecho en la acción Instalar en el árbol de acciones personalizadas y seleccione 'Agregar acción personalizada ...'
  4. En el "Seleccionar elemento en el proyecto" de diálogo, seleccione Carpeta de la aplicación y haga clic en OK.
  5. Haga clic en Aceptar para seleccionar la opción "Salida principal desde ...". Se debe crear un nuevo nodo.
  6. Repita los pasos 4 a 5 para las acciones de confirmación, retrotracción y desinstalación.

Ahora solo construye su instalador y producirá un MSI y un setup.exe. Elija lo que quiera usar para implementar su servicio.

0

El mensaje:

"Error 1053:. El servicio no respondió a la solicitud de en el momento oportuno o inicio del control"

suele ser una respuesta genérica a un problema que inicia el Servicio de Windows. Lo que debe hacer es verificar el registro de eventos y es probable que encuentre el error real que impide que el servicio se inicie.

Cuestiones relacionadas