Si el usuario desinstala el programa, ¿qué hacer con los datos del usuario? [cerrado]

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

  •  21-08-2019
  •  | 
  •  

Pregunta

Soy un desarrollador en necesidad de munición.

Si el usuario opta por desinstalar el programa, ¿qué hacer con los datos de su programa guardaba en HKEY_CURRENT_USER, y otras partes del perfil de usuario?

Los datos tiendas de programa de usuario (troncos, etc.) en las carpetas de usuario. El cliente quiere una desinstalación para eliminar todos aquellos datos ... para todos los usuarios. Al mismo tiempo, la una que no es administrador usuario normal debe ser capaz de hacer la desinstalación.

No he sido capaz de encontrar un libro blanco, documentación o de lo contrario que dice este no debe hacerse . Se cierra la entrada es de Raymond Chen: http://blogs.msdn.com/oldnewthing/archive/2007 /09/17/4948130.aspx

Sin embargo, un blog es débil munición.

Alternativa: Crear% SYSTEMDRIVE% \ FooProgramData durante la instalación. Todos los usuarios escribir en esta carpeta. Esto es feo, lo sé. Pero esta es la única manera que se me ocurre que puede satisfacer el requisito de "sobre-desinstalación-all-archivos-deben-ser-borran".

Los pensamientos? Necesito una mejor alternativa (si existe) o un sólido informe técnico, la documentación o el logotipo requisito que dice que desinstala no deben borrar los datos del usuario.

¿Fue útil?

Solución

"Al mismo tiempo, la una que no es administrador usuario normal debería ser capaz de hacer la desinstalación."

Una cuenta que no es administrador no debe (y nunca debe ser capaz de) alterar los datos de otros usuarios.

La mayoría absoluta que podría hacer en ese caso es eliminar los datos del usuario actual, e incluso entonces usted debe impulsar o dar una advertencia.

Ir a Raymond, que sólo puede ser un blog, pero Raymond se podría considerar ningún blogger ordinaria:)

EDIT: Acabo de encontrar http: // MSDN. microsoft.com/en-us/library/bb204770.aspx#uninstall_clean pero no dice nada explícito acerca de los datos de usuario

Otros consejos

desinstala debe eliminar todos los datos del cliente, excepto cuando el cliente no quiere que:)

O bien, dicho de otro modo, un desinstalador genérico debe dar al usuario la posibilidad de elegir si borrar los datos o no.

En su caso, en el que tienes un cliente que quiere específicamente los datos eliminados, supongo que eso es lo que vas a tener que hacer, pero no hay manera limpia de hacer que si la desinstalación se va a ejecutar por un no-admin a menos que hagas como sugieres y almacenar los datos de un lugar donde cada usuario tiene acceso completo sistema de archivos.

No sé por características específicas de Windows, pero como usuario me gustaría que mis datos no se pierden si se desinstala un programa. Algunos argumentos son los siguientes:

  • Otros programas pueden ser capaces de manejar los mismos datos
  • I más adelante podría cambiar de opinión y volver a instalar el software
  • Otras personas podrían necesitar los datos, que podría enviarlos por correo

La eliminación de todos los datos de cada usuario debe ser un proceso separado para la desinstalación.

Mi recomendación (y lo que hacemos) sería la creación de una utilidad independiente "limpieza" que se deben ejecutar como administrador y enumerará a través de los perfiles de la eliminación de los archivos de usuario adicionales. Opcionalmente también puede enumerar los usuarios de las secciones del Registro y eliminación de claves de registro adicionales, etc. Uno de nuestros clientes tiene sus propios scripts personalizados que hace exactamente eso.

Me continuación, proporcionar al cliente con esta herramienta de limpieza y decir después de la desinstalación, si desea eliminar todos los datos de usuario a continuación, utilizar esto.

Tenga en cuenta los siguientes casos

  • desinstala cliente antes de instalar una nueva versión
  • Las actualizaciones mayores (que desinstalar la versión antigua por lo que necesita ser consciente de esto)
  • desinstalación accidental por un usuario que no debería haber hecho, pero tenía la capacidad de hacerlo

La forma más limpia para eliminar estos datos para todos los usuarios que se me ocurre sería tomar ventaja de ajuste activo, y usar esto para desencadenar una secuencia de comandos para cada usuario que se ejecuta la próxima vez que cada usuario inicia una sesión. Los datos no se eliminará durante la desinstalación, pero en el siguiente inicio de sesión. Y se le deja unas pocas entradas en el registro de mentir sobre, sin embargo, sería menos probable que cause la corrupción que la enumeración de los perfiles de usuario.

Me no eliminar los datos de configuración de usuario y / o cuando la desinstalación. Si el usuario realmente quiere que todo se ha ido ella debe hacerlo por sí misma.

Sé que soy unos años tarde a este partido, pero como yo estoy buscando una respuesta a esto por mí mismo en este momento, me encontré con el siguiente nuevo artículo de MSDN: http://msdn.microsoft.com/en-us/library/windows/apps/jj553522.aspx .

Se refiere a aplicaciones de estilo de Metro, pero probablemente es relevante para otros tipos de aplicaciones. Su explicación da una distinción muy necesaria entre los diferentes tipos de datos de usuario y puede ayudar a un desarrollador decidir si desea eliminar un archivo o no. Sin esta distinción, es comprensible que no hay tales opiniones diferentes sobre si debe o no eliminar los archivos durante la desinstalación:

  

Hay dos tipos de datos que las aplicaciones con frecuencia manejar o interactuar   con:

     

los datos de la aplicación

     

Los datos que la propia aplicación crea y gestiona. Es mutable   datos específicos de las funciones internas o configuración de un   en particular aplicación. Incluye estado de tiempo de ejecución, las preferencias del usuario, la referencia   contenido (tales como las definiciones de diccionario en una aplicación de diccionario), y   otros ajustes. Aplicación de datos está ligada a la existencia de la aplicación y es   sólo tiene sentido a esa aplicación.

     

Los datos usuario

     

Los datos que el usuario crea y gestiona al utilizar una aplicación. Eso   incluye documentos o archivos multimedia, correo electrónico o comunicación transcripciones,   o registros de la base que sostiene el contenido creado por el usuario. Tenga en cuenta que   las preferencias seleccionadas por el usuario u opciones de configuración de aplicación se consideran   datos de aplicaciones, no datos de usuario. Datos de usuario es útil independiente de una sola   aplicación puede ser útil o significativa a más de una aplicación. A menudo esto es   datos que el usuario quiere manipular o transmitir como una entidad   independiente de la aplicación en sí, como por ejemplo un documento.

Tenga en cuenta las frases que se muestran aquí negrita y cursiva. Si los archivos en cuestión no tienen sentido sin la aplicación, si se contienen las preferencias del usuario para esa aplicación (como user.config), entonces no debe considerarse los datos del usuario, aunque puede estar localizado en un directorio de datos de usuario. Debe tenerse en cuenta que pertenecen a la aplicación y se eliminen en desinstalar.

Una vez dicho esto, todavía estoy buscando la manera simple de hacer esto para otros usuarios que el usuario actual! Estoy considerando mover todos esos datos en los directorios de datos de la aplicación para que más fácilmente a ser capaz de eliminarlos y sin tener que meterse en los almacenes de datos de usuario de cada usuario.

Mi reciente "Ponte listo" derrama en una recomendación de crear el archivo "readme.txt" en la carpeta correspondiente del usuario cuando las primeras ejecuciones del programa. El archivo debe contener instrucciones qué archivos para lo que son y también un descargo de responsabilidad con 'dude a limpiar los residuos de esta carpeta': -)

Sólo una aclaración a la pregunta, he creado una más, específicamente relacionados con la certificación del logotipo de Windows: del logotipo de Windows desinstalación .

He criado a un viejo dilema, pero quiero saber cuál opción Microsoft recomienda.

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