Tengo un dll compartido, lo llamaremos Utility.dll que está instalado por varios productos. En mi archivo WIX instalo Utility.dll como un componente separado. Ahora la versión 2.0 de Utility.dll hace referencia a un dll adicional, UtilityUtility.dll, que deberá instalarse junto con.WIX agregar nuevo archivo al componente compartido
Para mi primer intento integrando UtilityUtility.dll, creé un nuevo componente WIX que contiene el nuevo dll.
Esto causa problemas en el siguiente escenario
1) usuario instala Producto 1 {utility.dll 1,0}
2) El usuario instala Producto 2 {utility.dll 2,0, UtilityUtility.dll 2,0}
3) Producto usuario desinstala 2 {} 2.0 utility.dll
Ahora, cuando un usuario utiliza el utility.dll se producirá un error cuando no puede encontrar la referencia UtilityUtility.dll
Esto me llevó a añadir a UtilityUtility.dll el componente original que evita Ut ilityUtility.dll se eliminará en el escenario anterior pero viene con su propio problema.
1) usuario instala Producto 1 {utility.dll 1,0}
2) El usuario instala Producto 2 {utility.dll 2,0, UtilityUtility.dll 2,0}
3) El usuario desinstala Producto 2 {utility.dll 2,0, UtilityUtility .dll 2,0}
4) el usuario desinstala Producto 1 {UtilityUtility.dll 2,0}
UtilityUtility.dll está huérfano ya que no se eliminan por la desinstalación del producto 1 (no existiera en el componente cuando fue originalmente instalado).
¿Tengo alguna otra opción aquí?
Gracias
Con el primer escenario, ¿sería una reinstalación/reparación de Product1 después del unistall de Product2 utilizando REINSTALLMODE = a (o amus) reparar la situación? Tengo un proyecto de prueba similar y parece que la reparación reemplaza la DLL v2 con la v1 –
Sí, reparar Product1 con REINSTALLMODE = a forzaría todos los archivos en ese paquete en la máquina, lo que podría romper cualquier otro archivo compartido. "a" es un martillo muy brutal para columpiarse. –
La publicación a la que se refiere Rob sobre Component Rules se ha mudado, creo, a http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101 – adamjcooper