2010-09-29 9 views
5

Creé mi instalador MSI para nuestra aplicación C# a través de VS 2008. Lo instalé. Creó un acceso directo para mí en el escritorio. Hice clic en ese atajo, el proceso de configuración se ejecutó de nuevo y al final se lanzó nuestra aplicación. No fue así ayer, antes de agregar alguna acción personalizada para crear una base de datos. No recreé el atajo en el instalador. ¿Por qué es así?¿Por qué el acceso directo creado por mi instalación de MSI inicia el proceso de configuración cada vez?

Respuesta

5

MSI viene con una función de reparación automática que comprueba si todos los componentes instalados por MSI todavía están presentes cuando inicia su aplicación utilizando el acceso directo.

En su caso, probablemente uno (o más) componentes se han eliminado por lo que el instalador se inicia de nuevo para reparar su instalación.

Para evitar la auto-reparación de correr ya sea

  • Asegúrese de que no hay ningún archivo, configuración de registro u otro componente instalado se retira

o

  • No establecer la clave camino para esos componentes. Eso evitará que MSI verifique esos componentes específicos

De sus otras preguntas parece que su MSI ha sido creada por un Proyecto de instalación e implementación de Visual Studio. Lamentablemente, no hay ninguna opción para modificar la ruta de la clave desde Visual Studio. Dispone de las siguientes opciones:

  • modificar el MSI manualmente utilizando Orca (Esto no es una buena opción, ya que es un paso manual)
  • escribir un guión, por ejemplo, usando VBScript para parchear el archivo MSI
  • Mover a un estadio más avanzado sistema que le da más control tales como WiX o NSIS
+0

tienes razón. Eliminé algunos archivos de configuración temporal (archivos por lotes y archivos sql). Necesito encontrar una manera de evitar esto. gracias – 5YrsLaterDBA

+0

@ 5YrsLaterDBA: Como su configuración parece bastante compleja, definitivamente debe echar un vistazo a otras formas que no sean VS para crear su configuración. De todos modos, los proyectos de instalación de VS morirán en el futuro. Si está utilizando VS 2010 también puede probar InstallShield LE. –

+0

Lamentablemente, los proyectos de configuración VS (VDPROJ) no tienen la capacidad de controlar los archivos clave (todos los recursos, incluidas las claves de registro, son un único archivo de clave para un solo componente) y no hay manera de deshabilitar los accesos directos anunciados. Tienes que ser un buen Maestro Jedi de MSI para saber cómo hackear el problema. Sugiero mirar InstallShield 2010LE o WiX. VDPROJ murió hace muchos años. –

1

¿El atajo apunta a su aplicación o configuración? Si apunta a su configuración y la cambia a su aplicación, ¿el problema desaparece?

1

Suena como el sistema piensa que la instalación se ha corrompido y está intentando automáticamente una instalación de reparación, .Cualquier cosa en los registros de eventos (busque el origen de MsiInstaller en el registro de eventos de la aplicación).

¿Has estado creando copias múltiples?

6

Abra el MSI manualmente con Orca. Añadir el siguiente registro a la tabla Property (Propiedad, Valor) sin las comillas:

propiedad = 'DISABLEADVTSHORTCUTS' Valor = '1'

Esto también puede ser escrito y se ejecuta como parte de un evento posterior a la acumulación .

+1

ideal para la configuración de vs2005. 10x – parzival

0

Tenía el mismo problema. En mi caso, resultó que los campos 'Fabricante' y 'NombreProducto' estaban dentro de las propiedades del Proyecto Deoplyment. Tiene que ser el mismo que la estructura de carpetas a la que apunta su atajo, de lo contrario terminará con el error 'El recurso' C: \ Archivos de programa (x86) [Fabricante] [ProductName] \ 'no existe' dentro Visor de eventos.

1

Esto ocurre cuando la aplicación elimina un archivo que se implementó durante la instalación. La reparación automática está activada y, por lo tanto, obtienes la pantalla de instalación.

+0

¡Funcionó para mí, gracias! Tenía un archivo 'config.txt' obsoleto olvidado en la Configuración, pero este archivo se elimina y se reemplaza por un archivo 'config.xml' cuando se inicia la aplicación. Eliminar el archivo de la Configuración fue suficiente. – Elo

Cuestiones relacionadas