2012-08-16 9 views
103

Ayer descargué Visual Studio 2012 cuando se lanzó en MSDN. Me di cuenta de que algunos de los tipos de proyectos que teníamos en 2010 han desaparecido o son diferentes. La mayor diferencia para mí en este momento es la eliminación del proyecto de Windows Installer. Ahora nos vemos obligados a usar InstallShield LE (edición limitada). El problema aquí es que escribo muchos servicios de Windows y no veo cómo configurar InstallShield LE. Parece que nosotros (mi empresa) tendremos que invertir en licencias para la edición profesional.¿Cómo creo un proyecto de InstallShield LE para instalar un servicio de Windows?

¿Alguien ha encontrado una forma de instalar servicios en InstallShield LE? Cuando utiliza el proyecto de Windows Installer, simplemente establece las acciones personalizadas.

+1

Uso de acciones personalizadas installutil en proyectos de implementación de Visual Studio en realidad era una práctica muy pobre. Básicamente se trata de reinventar la rueda con una solución frágil porque la herramienta de creación subyacente no expone las capacidades nativas de MSI. –

Respuesta

159

Para Visual Studio 2012 & InstallShield LE, haga lo siguiente:

  • Ejecutar a través del asistente de proyecto de InstallShield y añadir la salida principal de su servicio a los archivos de aplicación sección.
  • Después de que haya terminado con el asistente del proyecto, haga doble clic en el elemento "Archivos" en el paso dos del proyecto de instalación.

Files section

  • Haga clic derecho en la salida principal de su servicio, e ir a propiedades.
  • Haga clic en la pestaña "Configuración de COM y .NET" y marque la casilla "Clase de instalador". enter image description here
  • Haga clic en Aceptar

Ahora, una vez que construir y ejecutar su instalación, por su servicio se mostrará en los servicios de Windows complemento en.

Tenga en cuenta que esto supone que ha añadido un "Proyecto de instalación" a su proyecto de servicio (haga clic con el botón derecho en la hoja de diseño del servicio y haga clic en "agregar instalador"). Puedo confirmar este trabajo en Windows 8 con Visual Studio 2012/InstallShield LE.

+0

Ok, esto también funciona en VS 2010 y Win 7 Pro. Todavía tengo que probarlo en VS 2012, pero esto debería hacerlo. Gracias. – fizch

+3

¿Es posible tener un cuadro de diálogo preguntando al usuario por la cadena de conexión de la base de datos (Servidor, autenticación y nombre de la base de datos) y actualizar el archivo de configuración del servicio de Windows utilizando InstallShield LE? –

+2

Esta es una guía bastante buena: http://www.c-sharpcorner.com/uploadfile/cb88b2/simple-steps-to-create-setup-file-using-install-shield-le-fr/. – Jonty

2

He escrito sobre este tema:

Augmenting InstallShield using Windows Installer XML - Windows Services

Básicamente se crea un módulo de combinación utilizando WiX para encapsular el servicio y luego añadirlo a su proyecto installshield. (Asegúrese de asociarlo al directorio INSTALLDIR para asegurarse de que su archivo vaya donde usted espera). Construye y prueba en una VM. Pedazo de pastel.

+0

¿Otra tecnología para aprender? Hasta ayer, no había oído hablar de WIX. Todavía no sé nada al respecto. Parece que todo este proceso se está volviendo cada vez más difícil para algo que solía tomar unos pocos clics. – fizch

+0

Solo se requieren unos pocos clics para * RUN * un instalador. Crearlos siempre ha sido mucho más esfuerzo. –

+0

También solo tomó unos pocos clics configurar el instalador. Debe escribir el título, el fabricante y etc., pero no tuvo que crear un documento xml completo. ¿Qué me puedes decir sobre WIX? Puedo decir que obviamente sabes mucho al respecto. ¿Qué es? ¿Dónde lo consigo? ¿Como lo uso? Etc ... – fizch

4

Si su proyecto es .NET, intente entonces puede utilizar la clase ServiceProcessInstaller con InstallShield LE.

Para que funcione con InstallShield, debe ingresar al árbol de "archivos" de InstallShield y hacer clic con el botón derecho en su archivo. Luego marque la casilla de verificación "Clase de instalador" en la pestaña "Configuraciones COM y .NET".

Lo he hecho funcionar, pero he tenido problemas en algunos sistemas operativos como Windows 2008R2. Su experiencia puede ser diferente.

Aquí se muestra un ejemplo: http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

+1

Lo siento. No vi esto hasta hoy. Parece que es más o menos la misma respuesta que la que acepté. Voy a +1. – fizch

6

Durante el uso de la casilla de verificación clase instalador puede funcionar para algunos casos, puede experimentar el siguiente error:

Error 1001.The specified service already exists

Aquí es un extracto de esta link sobre la manera de resolver este problema:

For Error: Error 1001.The specified service already exists

This error will occur if the component installing a .NET Service is incorrectly configured with ".NET Installer Class" set to Yes. The method to install a .NET Service is to use Component\Advanced Settings\Services view, not the ".NET Installer Class" setting. Making definitions in the Component\Advanced Settings\Services view creates entries in the Windows Installer ServiceControl and ServiceInstall Tables. These entries are used by the Windows Installer "InstallServices" action to install the Service.

+0

podría ayudarme y explicar esto ... La vista Component \ Advanced Settings \ Services se puede encontrar en – pithhelmet

+0

está en la primera edición del instalador (ffs! Microsoft why did you ¡elimine el tipo de proyecto de configuración!) .. Si tiene la edición premier. http://community.flexerasoftware.com/showthread.php?175189-Install-windows-service –

+0

Encontré que está relacionado con la longitud de el nombre del proyecto de instalación, es decir, cambiar el nombre de su proyecto de instalación a algo más corto como "Instalar" o "Configurar". – Jonty

24

Recientemente instalé VS 2012 con Install Shield LE. Al principio, recibí un error del servidor interno ISEXP -5036 después de una compilación (esto fue después de configurar un proyecto ISLE y ejecutarlo a través del Asistente de Install Install Shield). Eventualmente descubrí que estaba intentando crear el MSI en el tipo de medio DVD-5, que es donde estaba fallando. Por alguna razón, la creación de la solución nuevamente desde cero de alguna manera reconoce que solo se construye con los tipos de medios CD_ROM e SingleImage que funcionan.

De todos modos para rectificar el error 5036, haga clic en la pestaña Crear en VS 2012 (menú superior), seleccione el administrador de configuración y verá que su archivo de configuración IS está seleccionado en la configuración del DVD-5. Cambie esto a CD_ROM y haga clic en cerrar. Una vez que compile/reconstruya, se completará sin error IS 5036.

enter image description here

+2

Esto puede no tener nada que ver con su problema, pero resolvió el mío. Gracias! +1 – David

+0

Mismo problema para mí el inicio, la instalación predeterminada tenía DVD-5 como configuración y la configuración no se pudo construir. Con su consejo lo cambié a una sola imagen y lo construí sin ¡tejido! –

+0

Se seleccionó DVD-5. Respuesta simple pero excelente – beaumondo

2

yo acabamos de algunos problemas para encontrar dónde agregar instalador que se hace referencia en la respuesta. Entonces aquí es cómo.

doble clic en su clase de servicio dentro de su servicio Windows Proyecto una pantalla en blanco con el texto "Para agregar componentes a su clase, arrastrarlos desde la caja de herramientas y utilice la ventana Propiedades para establecer sus propiedades ..." Derecho haga clic en cualquier lugar, pero en los enlaces y seleccione "Agregar instalador"

ver ya

4

que tenía todo tipo de problemas con esto.

De la siguiente manera.

  1. InstallShield lleva años para descargar
  2. el proceso de registro es un dolor.
  3. las opciones de configuración son confusas y demasiado complejas.
  4. la solución aceptada en este hilo es un truco y no siempre funciona - vea 1001 en la documentación - esencialmente necesita pasar por el muro de pago para obtener las opciones de configuración correctas para instalar un servicio de Windows.

solución para mí como se ha mencionado en otro lugar - era abandonar InstallShield

enter image description here

Muy fácil desde ese punto.

Editar: Actualización - instalar la versión más reciente de aquí para https://wix.codeplex.com/releases/view/115492 vs 2013/2015

3

proyectos de instalación de Visual Studio están de vuelta en VS 2013 como una extensión de Visual Studio.

https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

Por favor, actualice su solución y proyectos de VS 2013. Si usted todavía está en VS 2010, usted es probablemente mejor mediante la actualización directamente a VS 2013.

Mi experiencia con InstallSheild LE es que es muy peculiar, pero una vez que descubres los trucos, es más fácil de usar. Sin embargo, creo que la edición limitada es una forma de que Microsoft y Flexera vendan la edición completa. En otras palabras, primero le pagamos a Microsoft mucho dinero por Visual Studio y luego a su socio (en el crimen) más por Installsheild. Mala estrategia que no funcionó ya que tuvieron que traer de vuelta a los proyectos de instalación de VS 2013.

-1

Consulte este enlace, que le ayudará a

Installshield

+0

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas solo de enlace pueden dejar de ser válidas si la página vinculada cambia –

0

tener en cuenta que toda la explicación anterior se no lo ayudará si planea crear más tarde una actualización de esa configuración. InstallShiled LE no puede detener el servicio en ejecución cuando se actualiza. No puede hacerlo desde el Instalador de servicios de Windows -> evento BeforeInstall.

0

Quería poner esto aquí;

En VS 2015, al hacer esto, me encontré con el error 1001 después de la instalación repetidamente.

respuesta en esta página se explica que en los versiones más recientes (cualquier cosa más allá de 2012), al parecer, lo que necesita para salir de forma explícita la clase opción instaladorsin control, y luego agregar su servicio de Windows bajo la sección de Servicios en el Paso 3 del proyecto de instalación:

Error 1001 when installing custom Windows Service

Cuestiones relacionadas