Proyecto de publicación de Visual Studio en un instalador simple

Resuelto follmer asked hace 7 años • 1 respuestas

Tengo un proyecto considerable, con múltiples clases, más de 500 imágenes y más de 20 archivos de texto asociados con dicho proyecto.

He estado publicando mi proyecto haciendo clic derecho en project->propertiesy haciendo clic en la pestaña publicar. He incluido los archivos de texto y las imágenes como resourcesya.

El problema es que cada vez que instalo una aplicación, generalmente es un instalador simple, es decir, descargas un instalador (un archivo como installer.exe), ejecutas este archivo que luego te lleva a través de la instalación, como dónde instalarlo. etc. Luego se instala la aplicación y listo.

Bueno, al publicar mi aplicación, especifico un directorio de salida y me quedan estos archivos:

  • Archivos de aplicación
  • MyProjectName.application(¿el manifiesto?)
  • configuración.exe

Si ejecuto setup.exe, puedo instalar la aplicación y ejecutarla sin problemas. Sin embargo, no sólo no me deja elegir dónde instalarlo, sino que tendría que enviar estos 3 archivos al usuario. Intenté enviar solo el archivo setup.exea un amigo y me dijo que faltaban los archivos necesarios (que supongo que para eso eran los archivos application filesy .application).

¿Cómo haría para agruparlos todos en un solo instalador, uno que se asemeje más a cómo instalaría una aplicación empresarial (piense en instalar Chrome, Eclipse, Photoshop, etc.)?

Me encanta poder tener un archivo que sea el instalador y que los usuarios puedan descargarlo.

Gracias

follmer avatar Dec 22 '17 12:12 follmer
Aceptado

The Ancients : Si lo siguiente esTL;DR(demasiado largo, no lo leí), lea estos dos enlaces:

  • Solución de problemas de proyectos de configuración e implementación
  • ¿Por qué utilizar Windows Installer XML (WiX) en lugar de VDPROJ?

ACTUALIZACIÓN : Septiembre de 2018 : dado que esta "respuesta" fue rechazada recientemente, permítanme intentar agregar algunos enlaces más para ver si la intención de la respuesta puede aclararse más. No quiero ser demasiado dramático, pero:

As deployment specialists we have to warn people when they commit to using a tool that is bound to fall apart for them down the line when more advanced deployment requirements invariably surface.

Los proyectos del instalador se han retirado varias veces y luego se han reintroducido en Visual Studio . Siempre basado en los problemas vistos con estos tipos de proyectos (solo los más grandes):

1)No hay soporte para MSBuild (no lo probé exhaustivamente yo, pero sí otros), 2)solo acciones personalizadas en modo diferido que se ejecutan en el contexto del sistema (no insertables en la GUI), 3)control general muy limitado (siempre se anuncian accesos directos, no hay capacidad para configurar ciertas cosas, etc.). .), 4) no hay soporte para la instalación adecuada del servicio; en su lugar, requiere acciones personalizadas, 5)muy pocos requisitos previos disponibles para empaquetar, 6) GUI rudimentaria con poca flexibilidad, 7)parece que no es posible definir características MSI (como en características y componentes), 8)problemas con 32 / 64 Problemas de bitness para acciones personalizadas , etc.

Una antigua página de MSDN sobre los tipos de este proyecto y sus problemas: Solución de problemas de proyectos de configuración e implementación .

Chris Painter, experto en MSI, y otros:

  • ¿Los proyectos de Visual Studio Setup son adecuados para configuraciones complejas?
  • ¿Por qué utilizar Windows Installer XML (WiX) en lugar de VDPROJ? (recomendado)

En mi opinión, el tipo de proyecto sólo puede funcionar para aplicaciones .NET simples. Cualquier complejidad de calibre y estás en problemas. SQL Scripts, IIS, adecuado COM / COM+, Users & Groups, Shares, Firewall Rules, Custom GUI, etc... Las herramientas comerciales y WiX tienen soporte avanzado para estas cosas. Los aspectos internos de los archivos MSI compilados también son deficientes (uso de autorregistro, acciones personalizadas para servicios, etc.). A menudo también experimento que la herramienta deja de funcionar por "alguna razón desconocida". De repente no se compila. Ejemplo concreto (con corrección).

Alternativas :

  • Vista de lista simple de herramientas de implementación
  • Sugerencias de inicio rápido de WiX (si la herramienta debe ser gratuita)

  • Cómo crear un instalador de Windows (enlaces a todo tipo de herramientas de implementación, resumen de las ventajas de MSI y algunas descripciones breves de las tecnologías de implementación más populares)

El kit de herramientas WiX de código abierto presenta un componente llamado Burnpara crear dichos setup.exelanzadores/descargadores/programadores previos, que se utiliza para ejecutar varias instalaciones en secuencia y/o instalar requisitos previos (una tarea muy común: los proyectos de Visual Studio solo admiten algunos requisitos previos).

Es necesario escribir código de marcado XML de WiX para utilizar esta función de grabación. Las herramientas comerciales Installshield y Advanced Installer proporcionan funciones GUI para crear dichos setup.exearchivos.


El instalador de Visual Studio es muy limitado, nunca lo uso. WiX (enlace a una respuesta que intenta proporcionar algunos enlaces para un curso intensivo de WiX) es una solución de implementación de código abierto completa. Te llevará un tiempo dominarlo, pero es muy bueno y flexible. Una solución comercial como Installshield o Advanced Installer le permitirá realizar una configuración más rápida y sencilla, pero pueden resultar muy costosas.

Dadas las limitaciones de los proyectos (y errores) de Visual Studio Installer, creo que la solución correcta es usar una herramienta diferente: ¿ Qué producto de instalación usar? InstallShield, WiX, Wise, Instalador avanzado, etc. Si necesita algo avanzado, de lo contrario tendrá dificultades. Con una herramienta más avanzada al menos es posible hacer lo que necesitas, aunque a veces pueda resultar más complicado.

Déjame saber lo que quieres saber sobre dicho proceso e intentaré ayudarte. No estoy seguro de qué software está ofreciendo, cuál es el grupo de usuarios objetivo, qué presupuesto tiene, etc. Windows Installer es muy deseable para una serie de beneficios corporativos , pero existen otras tecnologías de implementación (consulte la descripción anterior de varias herramientas a utilizar).

Stein Åsmul avatar Dec 22 '2017 16:12 Stein Åsmul