MSI quita requiere de la asamblea en la actualización de instalar, pero lo reemplaza en la Reparación
-
19-09-2019 - |
Pregunta
Estoy experimentando alguna rareza relativa a una instalación de MSI actualización, tal vez hay alguien que me puede ayudar:
Tengo dos paquetes Msi, un original y una actualización:
- MSI versión 1.0
- Contiene un .NETO de la asamblea, foo.dll para ser instalado en la GAC
- foo.dll es de tipo "Asamblea" (no "de Salida") dentro de los archivo MSI sistema de interfaz gráfica de usuario.
- MSI versión 2.0
- También contiene foo.dll (misma versión), además de un montón adicionales asambleas.
- Me gustaría MSI 2.0 remplazar totalmente 1.0, así que me puse a RemovePerviousVersion a False.
Ahora los dos escenarios de instalación:
Corro MSI 1.0.Foo.dll se instala en la GAC correctamente.Luego de ejecutar MSI 2.0 y Foo.dll parece ser removido de la GAC, pero el ensamblados adicionales están ahí.No tengo idea de forma.Sin embargo, si voy a Agregar/Quitar programas y haga clic en "Reparación" Foo.dll se pone en.
MSI 1.0 nunca está instalado y puedo ejecutar MSI 2.0.Foo.dll (y el ensamblados adicionales) es allí, como era de esperar.
Alguna idea de por qué el foo.dll se elimina durante la actualización??Gracias de antemano!
-Ken
ACTUALIZACIÓN Después de algunos refrescante y/o reconstrucción, parece que funciona ahora.Sin embargo, ahora no se quita foo.dll cuando desinstalo el MSI, a pesar de su propiedad "Permanente" se establece a false.No es tan grande de un problema, pero sería bueno saber lo que estaba pasando.
Solución
Para corregir la rareza, terminé haciendo lo siguiente:
- Instalado Orca.exe, parte del SDK de Windows.
- Agregado REINSTALLMODE = amus a la mesa Propery a través de la orca, después de construcción.
Esto resolvió mi problema inmediato y corregir los problemas de instalación / desinstalación que estaba experimentando. El único problema es que este es un proceso manual. El siguiente paso, hacer de esto una parte de un evento posterior a la generación automática de alguna manera.