首页 文章

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

提问于
浏览
1

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

当我尝试安装新版本1.0.0.1时,当我的系统已安装旧版本时,我收到错误2869 .

但是,如果我手动卸载旧版本并尝试安装较新版本,则会成功安装 .

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

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

1 回答

  • 1

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

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

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

相关问题