Instalar en la misma ruta al actualizar la aplicación

Tengo una aplicación en la que estoy implementando actualizaciones automáticas. Tengo un servicio web que el progtwig verifica y, si necesita actualizarlo, descarga y ejecuta el nuevo instalador (Visual Studio 2005 Setup Project), después del cual el progtwig se relanza. Todo bien y bien

Pero, ¿cómo me aseguro de que la ruta de instalación en el instalador adopte de manera predeterminada la misma ruta en la que el usuario instaló originalmente el progtwig?

Por ejemplo, si el usuario lo cambió de los archivos de progtwig a C: \ SomeFolder, ¿cómo haría que el instalador lo detecte y cambie su ruta de instalación a C: \ SomeFolder en lugar de archivos de progtwig? ¿O si el usuario eligió instalarlo para “Usuario actual” en lugar de “Todos los usuarios”?

-Haga clic derecho en el proyecto de instalación
-Ver
-Registro
-En el lado izquierdo, expanda HKey_Local_Machine y Software y haga clic en el nodo Fabricante
-En el lado derecho, haga clic con el botón derecho y agregue la clave de registro String
-Nombre de la clave de registro InstallDir
– Establecer su valor [TARGETDIR] .

enter image description here

Después de instalar el progtwig, puede ver que InstallDir regkey contiene la ubicación. Su aplicación de actualización puede usar esta misma ruta.

enter image description here

En general, la única diferencia entre “Solo yo” y “Todos” es la ubicación de los accesos directos que se crean. Puede ejecutar Process Monitor durante una instalación y compruébelo usted mismo.

EDITAR:

La aplicación de actualización puede usar InstallDir RegistryKey con estos pasos. Ref: Cómo: Usar una condición de inicio de registro para especificar un directorio de destino

-Haga clic derecho en el proyecto de instalación de su actualizador
-Ver
-Condiciones de lanzamiento
-Añadir una búsqueda de RegistryKey
-Especifique la Propiedad como SEARCHFORINSTALLDIR
-Especifique el RegKey como SOFTWARE \ ManufacturerName
-Salga de raíz apuntando a HKLM
-Especifique el valor como InstallDir

enter image description here

-Añadir una condición de lanzamiento
-Especifique la condición como SEARCHFORINSTALLDIR
-Dejar InstallUrl y mensaje

enter image description here

-Haga clic derecho en el proyecto de instalación
-Ver
-Sistema de archivos
-Seleccione la carpeta de aplicaciones
-Presione F4 para ver las propiedades de la carpeta de la aplicación
-Especifique la ubicación predeterminada como [SEARCHFORINSTALLDIR]

enter image description here

Ahora cuando crea el paquete de instalación para el actualizador y lo ejecuta, le dará el valor en el directorio de instalación regkey para la ruta de instalación.

Si desea desactivar el “Cuadro de texto de la carpeta” y el botón “Examinar” para evitar que los usuarios cambien la ruta de instalación de los actualizadores, puede usar Orca.exe . Orca es un editor de tablas de bases de datos para crear y editar paquetes de Windows Installer y fusionar módulos. Luego simplemente siga este proyecto de configuración, arreglando la ubicación del kit instalado


Otra forma de hacerlo es seguir las instrucciones de Aaron Stebner sobre cómo modificar la ruta de instalación predeterminada en una instalación basada en MSI basada en un valor de registro