WiX: Cambiar directorio .msi y tabla CustomAction con los cambios a ser utilizados por el archivo de revisión .msp

votos
0

con el conjunto de herramientas v3.11 Wix He creado un archivo .msi para mi aplicación (digamos versión 1.1) con un elemento de Directorio que se dirige a la LocalAppDataFolder y pone una carpeta Temp debajo. Esta estructura se utiliza con un elemento DirectoryRef para poner allí algunos archivos que se accede a una acción personalizada en InstallFinalize. Ahora me genera un programa (versión 1.2) que añade algunos archivos en la carpeta Temp. Pero quiero esa carpeta para estar en el TARGETDIR ahora. Así que cambié

<Directory Id=LocalAppDataFolder>
  <Directory Id=APPDATA_TEMP Name=Temp />
</Directory>

a

<Directory Id=MY_TEMP_PATH Name=.>
  <Directory Id=APPDATA_TEMP Name=Temp />
</Directory>

por debajo de la

<Directory Id=TARGETDIR Name=SourceDir>

estructura. Para el parche que se aplica correctamente Abrí el archivo .msi que se hace referencia en el registro (bajo HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ ... \ los productos {GUID} \ InstallProperties \ LocalPackage ) con la de la orca herramienta y editó los valores correspondientes en la tabla de directorio. También he editado la tabla CustomActions hacer referencia a la nueva ruta ya que se utiliza como parámetro allí. Así pues, ahora al instalar el parche que pone todos los archivos (cambiado y los nuevos) en el LocalAppDataFolder como lo hizo con la instalación inicial. La acción personalizada se llama con el parámetro correcto sin embargo.

¿Hay una manera de cambiar las msi base para apuntar mi nueva carpeta Temp o, alternativamente, de alguna manera decirle al programa a utilizar la nueva carpeta, independientemente de la trayectoria inicial?

El objetivo es aplicar el parche sin tener que desinstalar la aplicación por primera vez.

Cualquier ayuda sobre cómo lograr que es muy apreciada.

Publicado el 09/10/2019 a las 17:51
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Finalmente, encontramos una solución. Así que esto es lo que resuelve nuestro problema, si alguien alguna vez con algo similar:

Encontramos el camino real de la LocalAppDataFolder en dos lugares en el registro: La primera entrada se encuentra en HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ carpetas . El segundo es HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData ... \ Componentes . La entrada con el ID de componente que pone los archivos en la carpeta Temp tiene exactamente un valor, que es la ruta de acceso al primer archivo de ese componente. Cambiamos ambos caminos a nuestra nueva carpeta temporal.

Ahora el parche extrae los archivos correctamente a la nueva carpeta de la temperatura y la acción personalizada puede procesar más a fondo.

Respondida el 22/10/2019 a las 19:57
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more