2008-09-13 9 views
20

Tengo un proyecto de instalación de Visual Studio que uso para instalar una aplicación WinForms bastante simple. Al final de la instalación, tengo una página de interfaz de usuario personalizada que muestra una sola casilla de verificación que le pregunta al usuario si desea ejecutar la aplicación. He visto otros instaladores hacer esto con bastante frecuencia. Pero no puedo encontrar la forma de que Setup Project ejecute un archivo ejecutable una vez que finaliza la instalación. ¿Ideas?¿Cómo ejecutar ejecutable al final del proyecto de instalación?

NOTA: No puede usar acciones personalizadas porque se usan como parte del proceso de instalación, quiero ejecutar mi aplicación instalada una vez que el usuario presiona el botón 'Cerrar' al final de la instalación.

Respuesta

8

Creo que esta es una de las limitaciones reales del proyecto de instalación de Visual Studio. Debe poder modificar la última página de la interfaz de usuario de instalación, pero VS.NET no le ofrece la posibilidad de hacerlo. Puede modificar las tablas en .MSI después de que se haya creado, pero VS.NET probablemente sobrescribirá estos cambios cada vez que se compile. Es posible que pueda anular la última página utilizando un módulo de fusión que incluya en el proyecto de instalación. De cualquier forma, tendrá que familiarizarse con cómo se crean los diálogos de la interfaz de usuario en .MSI y esto no es trivial.

Es posible que desee considerar cambiar a un instalador gratuito basado en scripts o comprar una aplicación de creación de configuración comercial (simplemente no compre InstallShield por el amor de Pete). Eche un vistazo a InstallAware (aunque no lo he usado).

1

He hecho esto para aplicaciones internas creando un arnés de VB Script que inicia el ejecutable de instalación, espera a que se cierre y luego inicia el segundo programa.

También podría lograr esto con un poco más de pulido usando unas cuantas llamadas a Win API en un ejecutable C.

4

También puede utilizar las acciones personalizadas

+0

En la carpeta comprometerse en acciones de aduanas puede seleccionar añadir una acción personalizada y navegar a su salida exe primaria. Esto se ejecutará después de la instalación. También puede establecer una base condicional sobre una casilla de verificación que puede agregar a los cuadros de diálogo de configuración. En la propiedad de condición tendría CHECKBOXA1 = 1 por ejemplo –

4

Acabo de encontrar una manera muy fácil que no requiere herramientas externas. Solo debe agregar un archivo de clase al proyecto principal y una acción personalizada al proyecto de instalación.

http://www.codeproject.com/KB/install/Installation.aspx

+0

gracias al enlace me ayudó a entender todo el proceso mucho mejor – DeveloperChris

+0

gracias enlace útil – Ahmed

0

lo logré haciendo invocando el método principal de la asamblea mediante la siguiente línea:

(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {}) 
+0

bien, entonces eso no inicia un nuevo proceso pero funcionó para mis necesidades como todos los i Lo que tenía que hacer era ejecutar un pequeño formulario de configuración. – Grub

0

que puede hacerlo por el instalador personalizado. solo agregue la clase de instalador y verá muchos eventos como después de la instalación, antes de la instalación. acaba de conectar después de la instalación y desde allí ejecuta tu exe por clase de proceso. Sugeriría u google para encontrar más sobre el instalador personalizado. aquí es una buena relación que puede ayudar u http://www.codeproject.com/Articles/19560/Launching-Your-Application-After-Install-using-Vis

gracias

Cuestiones relacionadas