【问题标题】:Removing program settings with nullsoft uninstaller使用 nullsoft 卸载程序删除程序设置
【发布时间】:2015-03-17 15:27:00
【问题描述】:

我有一个使用 Nullsoft 安装程序脚本安装的 C# 程序,我发现该程序乱扔文件:)。

程序正在使用:

Properties.Settings.Default.Save

存储设置。这些设置似乎最终位于一个名称非常重要的文件夹中,例如:

$user/appdata/local/$publisher/myprogram_Url_sad546a5s4d6a5sd1adsd6/$version/

所以我的问题是: 如何从 NullSoft 中找到此名称以便删除文件?

一个快速而肮脏的解决方案当然是删除所有包含名称“myprogram”的旧版本,但这会阻止拥有多个版本的程序。

【问题讨论】:

  • 这是你的程序吗?您对唯一安装 ID 有任何控制权吗?
  • 'myprogram_Url_sad546a5s4d6a5sd1adsd6' 是 ID 部分的实际示例还是只是随机字符?如果是 GUID,则可能是安装程序中的程序 ID,卸载程序中应该提供该程序 ID 供您使用。
  • 您可以为当前用户清理这些文件(如果您确定他们不只是在尝试卸载和重新安装您的应用程序),但对于其他用户则不能(可靠地),因为它们可能已通过漫游配置文件复制到其他计算机。我倾向于Raymond Chen's advice,只保留每个用户的数据。这是用户看不到的地方,而且 .settings 文件可能不会占用足够的磁盘空间。
  • @Anders 这不是我的程序,但我可以访问源代码。在哪里可以找到此安装 ID?
  • @SteveMitcham 那只是随机字符。不幸的是,作为 GUID 的字符不够。

标签: c# nsis uninstallation


【解决方案1】:

您可以使用 ${Locate} "$localappdata\$publisher" "/L=D /G=0 /M=myprogram_*" MyCallbackfunc 宏搜索文件/文件夹,如果该文件夹包含 $version 文件夹,请检查 MyCallbackfunc。如果不想使用宏也可以直接调用FindFirst...

【讨论】:

  • 这似乎是目前最好的解决方案,我与项目负责人进行了交谈,似乎只需擦除名称为“myprogram*”的所有文件夹就可以了,因为我们无论如何都不支持同时使用多个版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 2021-05-19
  • 2017-08-09
  • 2010-10-02
相关资源
最近更新 更多