0

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

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

我尝试了几种 File 属性的组合,但似乎没有什么能完全满足我的要求,我的安装程序将它们放在我说的地方,不再考虑它们。我是否必须重新发明轮子并通过自定义操作来做到这一点?

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

4

1 回答 1

2

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

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

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

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

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

于 2012-06-07T07:09:46.533 回答