¿Cómo puede mi proceso de desinstalación lidiar adecuadamente con la restauración de las entradas del registro?

StackOverflow https://stackoverflow.com/questions/402017

  •  03-07-2019
  •  | 
  •  

Pregunta

A veces es necesario modificar la configuración del registro de Windows durante la instalación de una aplicación. Recientemente me he sentido frustrado por las aplicaciones que no restauran esta configuración cuando se desinstalan. Mientras pensaba más en esto, se me ocurre que puede que no haya una manera buena (o válida) de guardar y restaurar la configuración del registro. Tome la siguiente secuencia de eventos, por ejemplo:

  1. La aplicación A posee la acción Abrir para la extensión de archivo .abc .
  2. La aplicación B está instalada y secuestra la acción Abrir para la extensión de archivo .abc .
  3. La aplicación A está desinstalada.
  4. La aplicación B está desinstalada.

En el paso 3, si la Aplicación A es lo suficientemente inteligente, detectará que ya no posee la acción Abrir y, por lo tanto, omitirá cualquier intento de restauración.

En el paso 4, ¿hay alguna acción válida que pueda realizar la Aplicación B?

  • Al no hacer nada, la acción Abrir apunta a un ejecutable eliminado.
  • La restauración del puntero a la Aplicación A también es un archivo ejecutable eliminado.
  • No se permite preguntar al usuario ya que esto generalmente se considera mucho más allá de las habilidades técnicas del usuario típico. Si no está de acuerdo, sustituya un cambio de registro diferente en los pasos 1 y 2 que cree que estaría fuera del alcance para que el usuario responda.
  • La eliminación de la acción también requerirá que el usuario tome una decisión no informada en un momento posterior, o bien hará que alguna función no esté disponible para el usuario.

Esta es solo una de las muchas situaciones malas que puedo imaginar donde no hay una obvia y correcta " correcta " solución. Mi próximo proyecto requerirá cambios en el registro durante la instalación, y me gustaría conocer la mejor práctica recomendada para la desinstalación. Desafortunadamente, las prácticas de desinstalación erróneas me han quemado en los paquetes comerciales actuales, por lo que soy consciente de que aquí no hay consenso sobre las mejores prácticas, o bien hay mucho trabajo para hacerlo bien o un error de diseño en el Registro. , o ambos.

Este es un problema de programación muy real para mí. Lo estoy etiquetando Subjetivo porque no estoy seguro de que exista una respuesta única para right a esto. Por favor, siéntase libre de estar en desacuerdo.

¿Fue útil?

Solución

Si estás escribiendo la Aplicación B, entonces yo diría que no secuestres la acción Abrir para la extensión .abc en primer lugar. Durante la instalación, pregúntele al usuario si desea asociar archivos .abc con su programa. Durante la desinstalación, verifique si su programa aún está asociado. Si es así, desasocie la extensión del archivo; de lo contrario, déjelo solo.

Si hay otra aplicación que aún quiera asociarse con archivos .abc después de desinstalar B, es difícil: haga que el usuario lo arregle. Después de todo, aceptó asociar los archivos .abc a su aplicación y luego la desinstaló.

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