2009-03-02 14 views
5

¿Alguien puede enumerar los pasos necesarios para instalar programáticamente una aplicación en Windows. Además de copiar los archivos donde deben estar, ¿cuáles son los pasos adicionales necesarios para que su aplicación sea un ciudadano de primera clase en Windows (es decir, aparezca en la lista de programas, lista de desinstalación, etc.)cómo hacerlo: instalación programática en Windows?

Intenté googlear esto, pero no tuve suerte.

BTW: Esto es para una aplicación de C++ no administrada (desarrollada en Qt), por lo que prefiero no involucrar el .NET Framework si no es necesario.

Respuesta

7

creo que el tema de las respuestas que usted ve aquí es que usted debe utilizar un programa de instalación y que no se debe escribir el instalador mismo. Utilice uno de los muchos instaladores, como Inno Setup, InstallSheild o cualquier otra cosa que alguien recomiende.

Si intenta escribir el instalador usted mismo, probablemente lo haga incorrectamente. Esto no es un desaire contra usted personalmente. Es solo que hay muchos pequeños detalles que un instalador debería considerar, y muchas cosas que pueden salir mal, y si quieres escribir tú mismo el instalador, vas a tener que hacer todo bien. Eso significa mucha investigación y muchas pruebas de su parte. Ahórrate el problema.

Además de copiar archivos, las tareas de instalación varían bastante según lo que necesite su programa. Tal vez necesites poner un ícono en el menú de Inicio; una herramienta de instalador debería tener una forma de que eso ocurra muy fácilmente, completando automáticamente la ubicación de instalación que el cliente eligió anteriormente en la instalación, y tal vez incluso eligiendo el idioma local correcto para la etiqueta del atajo.

Es posible que necesite crear entradas de registro, como asociaciones de archivos o licencias. Su herramienta de instalación ya debería tener una manera fácil de especificar qué claves y valores crear o modificar.

Es posible que tenga que registrar un servidor COM. Esa es una acción lo suficientemente común como para que su herramienta de instalación probablemente tenga una forma de especificar eso como parte de la operación posterior a la copia del archivo.

Si la herramienta de instalación elegida no proporciona algunas acciones, la herramienta probablemente ofrecerá una manera de agregar acciones personalizadas, tal vez a través de un lenguaje de scripting, o tal vez mediante el enlace de un código externo desde una DLL. escribe que se incluye con tu instalador. Las acciones personalizadas pueden incluir la descarga de una actualización desde un sitio web específico, el envío de correo electrónico o un inventario de qué otros productos de su empresa ya están instalados.

Un par de cosas finales que una herramienta instalador debe proporcionar maneras de aplican las actualizaciones a una instalación existente, y una manera de desinstalación el programa, deshaciendo todas aquellas tareas de instalación (eliminación de archivos, la restauración de copias de seguridad, la anulación del registro Servidores COM, etc.).

+0

Su respuesta pareció resumir la esencia del resto de las publicaciones. ¡Muchas gracias! – JimDaniel

5

He usado Inno Setup para empaquetar mi software para C++. Es muy simple en comparación con soluciones de servicio pesado como InstallShield. Todo puede estar contenido en un solo setup.exe sin crear todos estos scripts de lotes locos, etc.

Échale un vistazo aquí: http://www.jrsoftware.org/isinfo.php

+0

Mientras obtiene InnoSetup, asegúrese de obtener la GUI Inno Tools; hace que la configuración del script de instalación sea realmente sencilla, y puede ejecutar el compilador para compilar la instalación sin tener que ir al símbolo del sistema. –

0

Ya tienes los pasos principales. Uno que dejó fuera es instalarlo en el menú Inicio y proporcionar una opción para crear un escritorio y/o un icono de inicio rápido.

Lo animo a que estudie el uso de un programa de instalación, como lo sugirió Jeremy.

10

Recomiendo encarecidamente NSIS. Código abierto, desarrollo muy activo, y es difícil de igualar/superar su extensibilidad.

Para añadir su programa para la opción Agregar/programas (o Programas y características) lista de eliminar, añadir las siguientes teclas reg:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PROGRAM_NAME] 
"DisplayName"="PROGRAM_NAME" 
"Publisher"="COMPANY_NAME" 
"UninstallString"="PATH_TO_UNINSTALL_PROGRAM" 
"DisplayIcon"="PATH_TO_ICON_FILE" 
"DisplayVersion"="VERSION" 
"InstallLocation"="PATH_TO_INSTALLATION_LOCATION" 
+0

¿Por qué votar abajo? –

+0

No lo sé. Tal vez alguien odia NSIS. –

+0

Quizás alguien pensó que realmente no respondiste la pregunta y, en cambio, habló solo con un ejemplo. –

1

La interfaz gráfica de usuario para ınnosetup (muy recomendable) es Istool

Usted También puede usar el instalador MSI integrado en Visual Studio, es una curva de aprendizaje más empinada (es decir, es un problema) pero es útil si está instalando software en un entorno corporativo.

2

Parece que necesita verificar el sistema de Windows Installer. Si necesita los detalles, consulte el official documentation. Para noticias, lea el blog del equipo de instalación. Finalmente, dado que usted es un programador, probablemente quiera construir el instalador como lo haría un programador. WiX 3.0 es mi herramienta preferida - código fuente abierto, de Microsoft para arrancar. Comience con this tutorial on WiX. Es bueno.

1

para tener su programa aparece en el menú del programa de inicio, que se necesita para crear la carpeta C: \ Documents and Settings \ All Users \ Menú Inicio \ Programas y ha añadido un atajo para el programa que desea lanzamiento. (Si desea que la aplicación se enumeran directamente en el menú Inicio o en el submenú programas, que pondría su atajo en el directorio correspondiente)

Para crear programically un atajo puede utilizar IShellLink (See MSDN article).

Dado que desea desinstalar, eso se vuelve mucho más complicado porque no desea simplemente eliminar archivos DLL u otros archivos comunes sin verificar las dependencias. Recomendaría usar un generador de instalación/instalación, especialmente hoy en día con Vista siendo tan perspicaz, se está volviendo bastante complicado rodar su propia instalación si necesita algo más que un solo ejecutable y un atajo de menú de inicio.

He usado el generador de configuración Paquet Builder desde hace varios años. (La versión registrada incluye la desinstalación).

+0

Aunque en lugar de utilizar "C: \ Documents and Settings \ All Users \ Start Menu \ Programs" debe usar una variable de entorno apropiada. –

+0

Correcto, más específicamente use algo como CSIDL_COMMON_PROGRAMS o CSIDL_PROGRAMS vea: http://msdn.microsoft.com/en-us/library/bb762494.aspx –

+0

Y eso dependiendo de si se está ejecutando como administrador, y si es así si está haciendo una instalación solo de administrador o de todos los usuarios. Pero al escribir un instalador, la segunda tarea (después de la copia del archivo) debe ser configurar la entrada Agregar/Quitar Programas para limpiar todo. – MSalters

Cuestiones relacionadas