【问题标题】:Installshield 2011 - Problem Upgrading existing software with Version format 2009.727.1365Installshield 2011 - 使用版本格式 2009.727.1365 升级现有软件时出现问题
【发布时间】:2010-09-22 21:01:21
【问题描述】:

使用 Installshield 2011,我们正在创建重大升级,但在使用此产品版本格式 - 2009.727.1365 升级软件时遇到问题。我们不断收到标准的“已安装软件比要安装的产品新”消息。对于 IS 2011,主要版本必须小于 255,据我所知,我认为我们使用的旧格式正在破坏升级检查。

我创建了一个测试 IS 项目,从 1.00.0000 升级到 2.00.0000 没有问题,所以我认为问题必须与已安装的产品版本的格式有关。

有没有办法使用 InstallScript 或其他方法将我们的旧格式与新格式进行比较,然后进行覆盖?

任何帮助将不胜感激。提前致谢!!

**我最终在下面提供的链接中使用了 Christopher 的回复(超出版本限制)。这似乎很好地处理了现有产品的卸载。再次感谢各位!

【问题讨论】:

    标签: installshield


    【解决方案1】:

    听起来好像您需要删除或修改 ISPreventDowngrade major-upgrade 项,它可以检测并防止这种版本降级(这通常是人们想要的)。

    (也在这里发布了对问题的跟进:http://community.flexerasoftware.com/showthread.php?t=195076。)

    【讨论】:

      【解决方案2】:

      您的ProductVersion 属性无效。 SDK 说:

      ProductVersion 属性的值是字符串格式的产品版本。此属性是必需的。

      字符串的格式如下:

      major.minor.build 第一个字段是主要版本,最大值为 255。第二个字段是次要版本,最大值为 255。第三个字段称为构建版本或更新版本,最大值为 65,535。

      我也推荐阅读Exceeding Version Limits

      如果您了解 FindRelatedProducts 和 RemoveExistingProducts 的工作原理,有一些技巧可以解决这个问题。

      【讨论】:

        【解决方案3】:

        即使这是一个较旧的我想加我的两分钱。 我正在创建一个 Installshield 2012 Spring 项目,我遇到了同样的问题。 我们以前的安装程序有一个格式为 2005.xx.xxxx 的产品版本。显然,2005 年是个问题。

        而不是将 ISACTIONPROP1 属性设置为任何值(如 http://community.flexerasoftware.com/showthread.php?195076-Old-Product-version-in-2009-727-1365-format 中所述)。 我添加了具有以下值的主要升级项目:

        旧安装程序的产品代码:xxx(在此处输入您的) 最低版本:2005.001.0001 最高版本:2005.255.65535 包含版本范围(可能有点矫枉过正)

        这样,系统在此处确实允许 2005.xxx.xxxx 格式。它检测并删除了以前的安装。对于我们较新的安装,我们将使用我们的“正常”版本:

        5.008.0001 5.009.0001 ...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-29
          • 2022-01-21
          • 1970-01-01
          • 2020-01-26
          • 2019-06-13
          • 1970-01-01
          相关资源
          最近更新 更多