Pregunta

Estoy creando una instalación usando VS 2003.La instalación tiene un libro de Excel y dos bases de datos de Access.Necesito forzar la carga de los archivos de Access independientemente de la fecha de creación/modificación de las bases de datos existentes en la computadora del usuario.Actualmente uso ORCA para forzar un número de versión en los dos archivos, pero me gustaría encontrar una solución más simple y elegante (la edición manual de un archivo .msi no es algo que considero una "mejor práctica").

¿Hay alguna manera de agregar un número de versión a las bases de datos usando Access que luego se usaría en la instalación?

¿Existe una mejor manera de hacer esto?

¿Fue útil?

Solución

@LanceSc

No creo que la tabla MsiFileHash ayude aquí.Mira esto excelente publicación por Aaron Stebner.Lo más probable es que la fecha de la última modificación de la base de datos de Access en la computadora cliente sea diferente de su fecha de creación.Windows Installer asumirá correctamente que el archivo ha cambiado desde la instalación y no lo reemplazará.

La forma correcta de resolver esto (como señaló el autor de la pregunta) es configurar el campo Versión en la tabla Archivo.

Lamentablemente, los proyectos de instalación en Visual Studio son muy limitados.Puede crear un script VBS simple que modifique los registros en la tabla de archivos (usando SQL), pero le sugiero buscar herramientas de creación de configuración alternativas, como WiX, InstallShield o Wise.WiX en mi opinión es el mejor.

Otros consejos

Dado que parece que no tiene recursos versionados correctamente, ¿ha intentado cambiar la propiedad REINSTALLMODE?

IIRC, en el valor predeterminado de 'omus', es el indicador 'o' que solo le permite instalar si tiene una versión anterior.Puedes intentar cambiar esto de 'o' a 'e'.Tenga en cuenta que esto sobrescribirá los archivos faltantes, más antiguos Y con las mismas versiones.

Agregar versiones manualmente fue la forma incorrecta de comenzar, pero esto debería garantizar que no tenga que aumentar manualmente los números de versión para instalarlas.

Busque eventos de compilación para su proyecto.Es posible que sea posible acelerar las versiones de los archivos durante un evento de compilación.[Simplemente no me cites sobre eso].No estoy seguro de si puedes o no, pero ese sería el lugar donde comenzaría a investigar primero.

Deberías poblar el MsiFileHash tabla para estos archivos.Mire WiFilVer.vbs, que forma parte del SDK de la plataforma Microsoft, para ver cómo hacerlo.

Mi otra sugerencia sería mirar WiX en lugar de Visual Studio 2003 para realizar instalaciones.Visual Studio 2003 tiene un soporte MSI muy limitado y puedes terminar pasando mucho tiempo luchando contra él, en lugar de realizar un trabajo útil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top