windows - 如果用户卸载了你的程序,你如何处理用户数据?

标签 windows installation uninstallation

<分区>

我是一名需要弹药的开发者。

如果用户选择卸载您的程序,您将如何处理您的程序保存在 HKEY_CURRENT_USER 中的数据以及用户配置文件的其他部分?

该程序将用户数据(日志等)存储在用户文件夹中。客户想要卸载以删除所有这些数据......对于所有用户。同时,普通的非管理员用户应该能够进行卸载。

我找不到白皮书、文档或其他说明不应该这样做的内容。最后是 Raymond Chen 的帖子: http://blogs.msdn.com/oldnewthing/archive/2007/09/17/4948130.aspx

但是博客文章是弹药。

备选方案:在安装期间创建 %SYSTEMDRIVE%\FooProgramData。所有用户写入此文件夹。这很丑陋,我知道。但这是我能想到的满足“on-uninstall-all-files-must-be-cleared”要求的唯一方法。

想法?我需要一个更好的替代方案(如果存在的话)或可靠的白皮书、文档或 Logo 要求,说明卸载不应删除用户数据。

最佳答案

“与此同时,普通的非管理员用户应该能够进行卸载。”

非管理员帐户永远不应该(也不应该能够)更改其他用户的数据。

在这种情况下,您最多只能删除当前用户的数据,即使这样您也应该提示或发出警告。

跟着雷蒙德走,它可能只是一篇博文,但雷蒙德可以被认为不是普通的博主:)

编辑:我刚找到 http://msdn.microsoft.com/en-us/library/bb204770.aspx#uninstall_clean但它没有明确说明用户数据

关于windows - 如果用户卸载了你的程序,你如何处理用户数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/510722/

相关文章:

installation - 如何使用 Inno Setup 处理 .msi 文件?

c++ - fseek 没有读取所有数据?

ubuntu - 在 ubuntu 14.04 上找不到 libsiftgpu.so

java - 无法卸载 Java JRE 1.7 32 位

android - 无需用户交互即可卸载 Android 应用程序

windows - Git 错误 : fatal: unable to connect a socket (Invalid argument)

c# - 如何确定我刚安装的 MSI 是否请求 Windows 重新启动?

windows - 如何安装痛饮?

django - 无法在 Windows 上本地运行 Django heroku 应用程序

android - 卸载在 Android 中不可见的包