Using Installshield 2011, we're creating a major upgrade and having problems upgrading software with this Product Version format - 2009.727.1365. We keep getting the standard 'Installed software is newer than product to be installed' message. With IS 2011, the major version has to be less than 255, from what I can gather, and I think the old format we're using is breaking the check for upgrading.
使用Installshield 2011,我们正在创建一个重大升级,并且在使用此产品版本格式升级软件时遇到问题 - 2009.727.1365。我们不断获得标准的“已安装的软件比要安装的产品更新”的消息。使用IS 2011,主要版本必须小于255,我可以收集,我认为我们使用的旧格式打破了升级检查。
I've created a test IS project upgrading from 1.00.0000 to 2.00.0000 with no issues, so I'm thinking the issue has to be related to the format of the product version already installed.
我创建了一个测试IS项目,从1.00.0000升级到2.00.0000,没有任何问题,所以我认为问题必须与已经安装的产品版本的格式有关。
Is there a way to use InstallScript or something to compare our old format with the new one and then do an override?
有没有办法使用InstallScript或其他东西来比较我们的旧格式和新格式然后覆盖?
Any help would be greatly appreciated. Thanks in advance!!
任何帮助将不胜感激。提前致谢!!
**I ended up using Christopher's reply in the link he provided below (Exceeding Version Limits). This seemed to handle the uninstallation of the existing product very well. Thanks again Guys!
**我最终在下面提供的链接中使用了Christopher的回复(超出版本限制)。这似乎很好地处理了现有产品的卸载。再次感谢大家!
3 个解决方案
#1
1
Your ProductVersion property is invalid. The SDK says:
您的ProductVersion属性无效。 SDK说:
The value of the ProductVersion property is the version of the product in string format. This property is REQUIRED.
ProductVersion属性的值是字符串格式的产品版本。此属性是必需的。
The format of the string is as follows:
字符串的格式如下:
major.minor.build The first field is the major version and has a maximum value of 255. The second field is the minor version and has a maximum value of 255. The third field is called the build version or the update version and has a maximum value of 65,535.
major.minor.build第一个字段是主要版本,最大值为255.第二个字段是次要版本,最大值为255.第三个字段称为构建版本或更新版本,并且具有最大值为65,535。
I also recommend reading Exceeding Version Limits.
我还建议阅读超出版本限制。
There are hacks to work around this if you understand how FindRelatedProducts and RemoveExistingProducts works.
如果您了解FindRelatedProducts和RemoveExistingProducts的工作原理,可以解决此问题。
#2
3
It sounds as if you'll need to remove or modify the ISPreventDowngrade major-upgrade item, which is what detects and prevents this kind of version downgrade (and which is usually what one wants).
听起来好像你需要删除或修改ISPreventDowngrade主要升级项目,这是检测并防止这种版本降级(通常是你想要的)。
(Posted follow-up to question here, too: http://community.flexerasoftware.com/showthread.php?t=195076.)
(也在这里发布了问题的后续问题:http://community.flexerasoftware.com/showthread.php?t = 195076。)
#3
0
Even though this is an older I'd like to add my two cents. I am creating an Installshield 2012 Spring project and I had the same issue. Our previous installers had a Product Version in the format 2005.xx.xxxx. Obviously this 2005 was an issue.
即使这是一个年纪较大的我想加我的两分钱。我正在创建一个Installshield 2012 Spring项目,我遇到了同样的问题。我们以前的安装程序的产品版本格式为2005.xx.xxxx。显然这是一个问题。
Instead of setting the ISACTIONPROP1 property to any value (as mentioned in http://community.flexerasoftware.com/showthread.php?195076-Old-Product-version-in-2009-727-1365-format). I added a major upgrade item with the following values:
而不是将ISACTIONPROP1属性设置为任何值(如http://community.flexerasoftware.com/showthread.php?195076-Old-Product-version-in-2009-727-1365-format中所述)。我添加了一个具有以下值的主要升级项:
Product code of the old installers: xxx (enter yours here) Minimum version: 2005.001.0001 Maximum version: 2005.255.65535 Version Range Inclusive (might be overkill)
旧安装程序的产品代码:xxx(在此处输入)最低版本:2005.001.0001最高版本:2005.255.65535版本范围包含(可能过度杀伤)
With this, the system does allow the 2005.xxx.xxxx format here. It detected and removed the previous installation. For our newer installations we will use our "normal" versions:
有了这个,系统在这里允许使用2005.xxx.xxxx格式。它检测到并删除了以前的安装。对于我们的新安装,我们将使用我们的“普通”版本:
5.008.0001 5.009.0001 ...
5.008.0001 5.009.0001 ......
#1
1
Your ProductVersion property is invalid. The SDK says:
您的ProductVersion属性无效。 SDK说:
The value of the ProductVersion property is the version of the product in string format. This property is REQUIRED.
ProductVersion属性的值是字符串格式的产品版本。此属性是必需的。
The format of the string is as follows:
字符串的格式如下:
major.minor.build The first field is the major version and has a maximum value of 255. The second field is the minor version and has a maximum value of 255. The third field is called the build version or the update version and has a maximum value of 65,535.
major.minor.build第一个字段是主要版本,最大值为255.第二个字段是次要版本,最大值为255.第三个字段称为构建版本或更新版本,并且具有最大值为65,535。
I also recommend reading Exceeding Version Limits.
我还建议阅读超出版本限制。
There are hacks to work around this if you understand how FindRelatedProducts and RemoveExistingProducts works.
如果您了解FindRelatedProducts和RemoveExistingProducts的工作原理,可以解决此问题。
#2
3
It sounds as if you'll need to remove or modify the ISPreventDowngrade major-upgrade item, which is what detects and prevents this kind of version downgrade (and which is usually what one wants).
听起来好像你需要删除或修改ISPreventDowngrade主要升级项目,这是检测并防止这种版本降级(通常是你想要的)。
(Posted follow-up to question here, too: http://community.flexerasoftware.com/showthread.php?t=195076.)
(也在这里发布了问题的后续问题:http://community.flexerasoftware.com/showthread.php?t = 195076。)
#3
0
Even though this is an older I'd like to add my two cents. I am creating an Installshield 2012 Spring project and I had the same issue. Our previous installers had a Product Version in the format 2005.xx.xxxx. Obviously this 2005 was an issue.
即使这是一个年纪较大的我想加我的两分钱。我正在创建一个Installshield 2012 Spring项目,我遇到了同样的问题。我们以前的安装程序的产品版本格式为2005.xx.xxxx。显然这是一个问题。
Instead of setting the ISACTIONPROP1 property to any value (as mentioned in http://community.flexerasoftware.com/showthread.php?195076-Old-Product-version-in-2009-727-1365-format). I added a major upgrade item with the following values:
而不是将ISACTIONPROP1属性设置为任何值(如http://community.flexerasoftware.com/showthread.php?195076-Old-Product-version-in-2009-727-1365-format中所述)。我添加了一个具有以下值的主要升级项:
Product code of the old installers: xxx (enter yours here) Minimum version: 2005.001.0001 Maximum version: 2005.255.65535 Version Range Inclusive (might be overkill)
旧安装程序的产品代码:xxx(在此处输入)最低版本:2005.001.0001最高版本:2005.255.65535版本范围包含(可能过度杀伤)
With this, the system does allow the 2005.xxx.xxxx format here. It detected and removed the previous installation. For our newer installations we will use our "normal" versions:
有了这个,系统在这里允许使用2005.xxx.xxxx格式。它检测到并删除了以前的安装。对于我们的新安装,我们将使用我们的“普通”版本:
5.008.0001 5.009.0001 ...
5.008.0001 5.009.0001 ......