Visual Studio安装程序项目在卸载过程中不应删除文件

4
我为我的应用程序创建了 Visual Studio 2005 安装项目。在安装过程中,Windows Installer 将一个 XML 文件放置到 AppData/myCustomFolder 中。我使用文件系统编辑器添加了特殊文件夹——用户应用数据文件夹,并将该 XML 文件包含在其中。
当我从控制面板卸载应用程序时,来自 Program Files 文件夹的文件被删除,但 AppData 中的 XML 文件也被删除了。我需要始终在 AppData 中保留此 XML 文件,即使用户重新安装应用程序。
我该如何做到这一点?
1个回答

5

我检查了解决方案。你是对的,这个属性在卸载过程中可能会留下文件。但是,如果你将属性设置为true一次,然后再返回到false,你会发现它不起作用。文件永远不会被卸载。这是Windows Installer的一个bug。我的意思是,如果你将一个文件设置为permanent=true,然后将另一个文件设置为permanent=true,但取消第一个文件的设置,那么它们现在都是permanent,无论选择了哪个选项。你应该重命名文件以重置Windows Installer的行为。 - Akim Khalilov
@AkimKhalilov,这个问题有解决的办法吗?我不小心在一个文件上设置了Permanent标志,现在即使我将Permanent重置为False,卸载程序仍然无法删除该文件。肯定是注册表中有什么东西吧? - bsh152s
如果Visual Studio Installer Project没有删除文件,并且您之前启用和禁用了Permanent设置,则您的安装程序已经命令操作系统永久存储某些文件。如果您正在创建全局安装程序,请在此处注册表中查找此条目:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components - KUL
@KUL fwiw,微软不支持这个。自行决定风险。 - Christopher Painter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接