visual toolset studio setup microsoft create community deployment visual-studio-2010 installer wix installshield

deployment - toolset - setup project visual studio



Capacidades del instalador, WIX vs InstallShield Express (3)

La matriz de características para Instalar el escudo se puede encontrar aquí:

http://www.flexerasoftware.com/products/installshield/features.htm

Sin embargo, para la sección IIS (supongo que necesita IIS en función del enlace a mi pregunta anterior), todo lo que dice es "Limitado". Depende de usted adivinar qué significa Limitado, pero estoy apostando a que no admitirá una implementación de nivel empresarial.

Los programadores que realmente promueven sus productos a la producción necesitan un instalador. (Justificación anticipada "relacionada con la programación".)

Para implementar un nuevo conjunto de aplicaciones y servicios corporativos internos, estoy tratando de decidir entre usar WIX y la edición InstallShield Express que viene con Visual Studio 2010.

He buscado, pero no he encontrado una matriz de características que resalte las características que no están en la edición Express. Espero que WIX sea en general bastante capaz, pero más difícil de usar, y he oído hablar de situaciones que WIX no soporta bien.

¿Alguien ha encontrado una matriz de características, o tiene otras recomendaciones sobre la mejor manera a largo plazo de administrar las implementaciones internas?


Me parece que wix es una gran opción (a pesar de la curva de aprendizaje muy empinada ) si necesita administrar instaladores en un entorno complejo porque

  • Las definiciones de configuración se almacenan en un formato XML.
  • le da control total a la tecnología de instalación de Windows subyacente; el esquema XML generalmente sigue muy de cerca el esquema de la base de datos del instalador de Windows (que también es la razón principal por la que la curva de aprendizaje es tan pronunciada)
  • Es fácil de integrar en su construcción automatizada
  • Partes de la configuración se pueden generar automáticamente.
  • Le permite definir pequeños módulos reutilizables y administrar dependencias complejas entre ellos.
  • sin costo ni problemas de licencia (antes de wix, todos tuvimos que usar una sola "Installshield PC")

Por qué el formato XML es una ventaja: le permite aprovechar completamente los sistemas de control de versiones de código como subversion o mercurial. Revisar cambios, examinar el historial o incluso fusionar cambios entre sucursales es muy sencillo. Compare eso con los proyectos de instalación de pantalla que son burbujas binarias opacas.

Lo que quiero decir con la gestión de dependencias complejas: en nuestro caso tenemos un gran grupo de bibliotecas de componentes reutilizables con un conjunto complejo de dependencias entre ellas, y muchas aplicaciones que se construyeron sobre eso. Antes de wix, esto era una pesadilla cuando se introdujo una nueva dependencia en algún lugar: TODAS las configuraciones tenían que ser actualizadas.

Ahora con wix, tenemos un ComponentGroup para cada biblioteca, organizado en un par de wixlibs . Cada grupo de componentes hace referencia a otros grupos de componentes de los que depende con un ComponentGroupRef . Los desarrolladores de configuración de aplicaciones solo necesitan hacer referencia a los grupos de componentes de las dependencias directas, y wix hará el resto siguiendo las referencias. Como resultado, la introducción de una nueva dependencia solo requiere realizar un solo cambio local. Nuestras compilaciones automatizadas y wix hacen el resto para regenerar todas las configuraciones.


InstallShield Express es para implementaciones básicas (no es más que un WinZip glorificado). También puede consultar mi AdvancedInstaller favorito. También tienen la edición exprés gratuita, pero creo que ambos no le servirán de nada, porque si necesita hacer algo con IIS, MS SQL, Active Directory, GAC, etc., necesitará ediciones de "nivel empresarial". WiX es gratis, pero la curva de aprendizaje es tan pronunciada que no vale la pena aprender. Me arrepiento de haberlo aprendido.

Si necesita esto solo para implementaciones internas y no puede gastar $ 1,000 en el instalador, simplemente cree su propio proyecto de "instalación" desde cero. System.EnterpriseServices.Internal namespace contiene algunos contenedores útiles para IIS, GAC, etc. System.Configuration.Install.ManagedInstallerClass puede ayudarlo a implementar servicios de Windows. En otras palabras, puede crear su propio programa desde cero que puede manejar todos los pasos necesarios para la implementación de su producto principal. Muchas empresas no utilizan para sus productos emblemáticos los instaladores comerciales, hacen su propio.