¿Cómo crear un sistema de instalación simple para VB6 en XP / Vista y más reciente?

Gran énfasis en simple. Nunca hice un instalador y preferiría no tener que aprender mucho. Un sistema al que podría entregarle una stack de archivos y sería una buena suposición sobre dónde colocarlos sería ideal.

Adelante y responde la pregunta general.

Sin embargo, en mi caso, tengo algunas limitaciones adicionales. El progtwig que se instalará está escrito en VB6 (¿o es 5?) Y algunas versiones anteriores de VB, por lo que no se actualizará en el corto plazo. Tengo una instalación en ejecución y tendré una VM limpia con la que jugar. Haré un bucle de: ejecutar la instalación, encontrar dónde está roto, arreglarlo, agregar eso al instalador, revertir la máquina virtual, volver a intentarlo. Si alguien tiene un mejor enfoque, estoy abierto a sugerencias.

DEBO hacer que funcione en XP y también me gustaría tener algo que también funcione en las versiones más nuevas de Windows.

InnoSetup o NSIS , lo que te parezca más fácil. ISTool es una buena herramienta de GUI para InnoSetup que facilita aún más la creación de scripts de configuración.

He usado InnoSetup hace varios años, antes de Vista, y estaba muy contento con eso. Solo tenía algunos archivos para instalar y un ícono de menú de inicio. Funcionó muy bien, y fue fácil de aprender.

Dependency Walker es muy útil para descubrir qué dll falta en el instalador. Una vez que conozca el dll, puede encontrar el módulo de fusión en el que está utilizando el Buscador de módulos de combinación .

He trabajado con NSIS y superar algunas de sus complejidades menores es un sistema fantástico. es gratis, ofrece toneladas de capacidad de complementos y logró hacer todo lo que necesitaba hacer.

Crear un paquete de instalación completo para un progtwig es casi un tema en sí mismo. Hay muchos factores a considerar y la mayoría de nosotros ya no ejecuta Windows 95. El mundo no es tan simple como lo era antes.

Hay muchas cosas que deben abordarse, y algunos de estos problemas de “instalación” significan también cambiar el progtwig. Por ejemplo, el concepto de “carpetas protegidas” que parecía nuevo para las personas cuando Vista UAC apareció en escena. Supongo que todos se estaban ejecutando como administradores o algo así. En su forma más simple, significa que ya no pone archivos grabables junto al EXE en Progtwigs (también conocido como “Archivos de progtwig”).

Otro factor es que la forma en que se usa el registro ha cambiado. No estoy hablando de virtualización de registro, aunque eso también es parte de esto. Pero el registro COM se puede hacer tanto por máquina como por usuario, e incluso desactivar el UAC puede hacer que esto no funcione. Ver registros COM por usuario y procesos elevados con UAC en Windows Vista SP1 . El resultado es que un paquete de instalación no debería ejecutar regsvr32 (o llamar al punto de entrada de autoregistro de una biblioteca COM). Consulte “Observaciones” en la tabla SelfReg .


Windows Installer es la forma de avanzar en la mayoría de los casos. Los progtwigdores de VB6 tienen Visual Studio Installer 6.0 versión 1.1 disponible como descarga gratuita para crear paquetes de MSI. Consulte “Servidores COM” en el artículo de VFP. Use el Instalador de Microsoft Visual Studio para distribuir aplicaciones de Visual FoxPro 6.0 para obtener información valiosa.

Esta no es la opción más fácil, pero hay un Asistente de configuración de VB en VSI 1.1 para ayudarlo a tener los conceptos básicos correctos. Hacer cosas avanzadas como la creación de una subcarpeta [CommonAppData] y establecer los derechos de todos en él tiene que hacerse en un paso posterior a la construcción fuera del IDE. Ahí es donde las herramientas de terceros pueden ser útiles para darle más control sin recurrir a Orca o scripts de instalador posteriores a la construcción.

Esos tipos que crean instaladores “heredados” con guiones intentan mantener el ritmo, pero las secuencias de comandos se vuelven cada vez más complicadas. Los resultados son a veces dudosos. Windows 7 presenta algunas nuevas arrugas propias.

Si bien ClickOnce no es realmente la mejor opción para VB6, nada dice que no puedas usar COM sin registro para instalar XCopy de muchos progtwigs. El COM sin registros incluso puede ser una buena opción para usar en un paquete de instalador.


Así que, al final, la forma “más simple” de implementar progtwigs VB6 probablemente serán los paquetes COM XCopy sin registro empaquetados en un EXE autoextraíble que disparará un script para crear un atajo de menú de inicio. Si puedes vivir sin el atajo, esto es aún más fácil: ¡simplemente descomprime el paquete donde necesita ir!

Ver Make My Manifest o herramientas alternativas para el empaque COM sin registro.

Esto requiere que los sistemas de destino ejecuten XP (preferiblemente SP2) o posterior. El único error posible aquí es que XP no incluyó los tiempos de ejecución del V5 SP6 hasta XP SP3, por lo que primero querrá probar su progtwig contra los tiempos de ejecución del V5 SP5. Bien, una falla adicional: no puede usar ActiveX EXEs de esta manera, todavía requieren el registro.

Mi consejo es esto. Intenta mantener el instalador lo más simple posible. Windows Installer es una pieza de software muy complicada y, cuando las cosas no funcionan bien, puede ser difícil averiguar qué está pasando. Estoy seguro de que todos hemos experimentado el ciclo infinito de Windows Installer tratando de reparar un archivo para el que ya no tiene el archivo .msi de origen.

La mayoría de las veces, usar Windows Installer es como usar un martillo para romper una nuez.

Yo uso InnoSetup para mis cosas e InstallShield en el trabajo (en contra de mi voluntad). Comience con un simple instalador basado en scripts y solo use Windows Installer si tiene una buena razón para hacerlo.

Tenga en cuenta que es posible que falte soporte para instalar ensambles en el GAC para algunas herramientas de configuración que no sean de Windows Installer (como InnoSetup).

Solía AMAR la configuración Inno. Énfasis en “solía”.

Cuando ejecuta el instalador de un único archivo (lo que normalmente haría), descomprime el progtwig de instalación real en una carpeta debajo de la carpeta temporal y luego intenta ejecutarlo. El problema es … algunos progtwigs antivirus no permiten esto.

El autor es consciente de esto y se niega a hacer nada al respecto. El nombre de la carpeta es aleatorio, por lo que no se puede agregar a ninguna lista de exenciones que pueda usar su progtwig antivirus.

De nuevo. El autor es consciente de esto y sugiere que les indique a mis usuarios que apaguen sus progtwigs antivirus durante la instalación. (Como que va a suceder)