安装升级版本时,Windows 7安装程序包错误2869

时间:2011-02-20 12:00:01

标签: installer windows-installer setup-project setup-deployment uninstaller

我有一个版本号为1.0.0.1的应用程序,它是对旧版本1.0.0.0的升级。

  

当我尝试安装新版本时   1.0.0.1,当我的系统已经安装了旧版本时,我就是   得到错误2869。

但如果我手动卸载旧版本&而不是尝试安装较新的版本,然后安装成功。

我更改了新版本的产品代码。但没有更改升级代码。

有谁可以让我知道原因并解决这个问题?

1 个答案:

答案 0 :(得分:1)

在MSI ProductVersion属性中,只有前3个字段在使用主要升级逻辑比较版本时才有意义。所以在你的情况下,MSI会认为1.0.0.1和1.0.0.0都是1.0.0。因此,FindRelatedProducts不会将此情况视为升级。

我接近这个的方法是创建一个'打包'版本,其中第3和第4个字段合并为一个使用,比方说(4096 * f3 + f4),但这将是你永远不会有第4个字段(构建)数字)大于4096,第三个字段不大于15,因为0xFFFF是版本字段的最大值。

这使我们能够在各个夜间构建之间执行主要升级,而不仅仅是服务包,而不需要引导程序来实现次要升级,并且我们可以为每个构建创建新的产品代码,因此无需记住更新在需要时手动完成。