当安装的文件被删除时,VS安装项目会破坏自我

时间:2012-06-06 21:21:22

标签: visual-studio-2010 c#-4.0 installer installation vdproj

这应该很简单,但我似乎无法得到它。我有一个安装项目(VS2010),它包含几十个图像文件(以及我的SQLite文件),并在安装程序时将它们复制到用户的计算机上。由于这些基本上是“库存”图像,如果用户删除它们就可以了(在程​​序中有这样的功能。)然而,在删除了一个或多个这些图像之后,下次程序启动时它会给出“Windows安装程序”对话框,并删除所有剩余的数据文件!

我认为正在发生的是程序看到丢失的文件,假设安装已损坏,并尝试进入某种恢复/卸载模式。我想知道如何在安装项目中指出需要安装文件,但用户可以随时删除。

我已经尝试了几种文件属性的组合,似乎没有什么可以做我想要的,这是我的安装程序将它们放在我说的地方,而不再考虑它们。我是否必须通过自定义操作重新发明轮子?

编辑:Transitive和Vital都设置为True。将它们设置为False会导致程序在重新启动后重新添加已删除的图像!如果我没有得到答案,我可能会采取自定义行动。

1 个答案:

答案 0 :(得分:2)

使用文件关联或播发的快捷方式时,Windows Installer会自动检查是否缺少component key paths。如果未找到密钥路径,则会触发修复以重新安装组件。

很可能安装程序修复过程会删除其他文件。

解决方案是不使用Windows Installer注册组件。这是通过使用空组件GUID完成的,并且Visual Studio安装程序项目不支持它(但是大多数其他设置工具都支持它)。

另一种解决方案是确保您的图像文件不是其组件中的关键路径。 Visual Studio也不支持此功能。

如果您想使用提供更多控制的设置创作工具,您可以查看此列表:http://en.wikipedia.org/wiki/List_of_installation_software