修补程序期间不会删除RemoveFile表中的文件

时间:2010-09-29 20:31:29

标签: installer windows-installer installshield patch installshield-2009

我正在发布我的产品的新版本(次要升级),我打算将其打包为补丁。这是InstallShield 2009中的基本MSI项目。

安装程序在桌面和“所有程序”菜单中创建一些快捷方式,此快捷方式引用版本号,例如:克。 “我的产品7.3”,“我的产品7.3.2”。

快捷方式名称的更改导致在升级完成后,系统最终会出现重复的快捷方式,一个用于版本7.3,另一个用于版本7.3.2。

我对此进行了一些研究并开始使用 RemoveFile 表,这在我创建补丁7.3.1时工作正常,但现在在补丁7.3.2中,它在某些情况下无效。让我澄清一下。

此方案有效:

  1. 我安装了产品版本7.3(完整安装程序)
  2. 运行补丁7.3.1(Windows安装程序补丁)。删除7.3的快捷方式。
  3. 运行补丁7.3.2(Windows安装程序补丁)。 7.3.1的快捷方式被删除了。
  4. 此方案不起作用:

    1. 我安装了产品版本7.3 (完全安装程序)
    2. 运行补丁7.3.2 (Windows安装程序补丁)。捷径 for 7.3不会被删除。
    3. 注意:我已经通过运行完整安装程序而不是补丁测试了我的7.3.2版本,并且它运行正常。它执行次要升级并删除旧的快捷方式。

      在我的7.3.2补丁中,我添加了7.3和7.3.1作为先前的设置。

      详细日志似乎没有提供太多信息(或者我可能没有做正确的搜索)。

      与RemoveFile表中的记录关联的组件已正确更新,我可以在日志中验证:

      MSI (s) (58:EC) [15:51:44:846]: Component: ProgramFiles; Installed: Local;   Request: Local;   Action: Local
      

      我将非常感谢您提供的任何帮助。

      感谢。

      胡安卡洛斯

2 个答案:

答案 0 :(得分:0)

如果先前的设置中仅包含7.3,请检查补丁安装是否有效。

答案 1 :(得分:0)

似乎这个案例中的问题与我在创建补丁时意外更改源文件的事实有关。因此文件表与我实际发送的文件不匹配。这与升级产生了某种冲突。我总是使用正确的文件重复这个场景,它运行良好。