To fix the ICE 61 error, add a VersionMax attribute to your UpgradeVersion that has a value equal to your Product/@Version attribute and also specify UpgradeVersion/@IncludeMaximum="no".
-----Original Message----- From: Thomas Mathis [mailto:t...@bica.ch] Sent: 09 June 2010 17:43 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] error CNDL0242 hello Peter Shirtcliffe, Thank you for your replay. I found out why the Windows Installer limits it, because of the limitation of the windows registry. The Windows Installer saves the values to the ARP (Add/Remove Programs) properties in the registry and there is the version key saved as a DWORD. So there is no more space for larger numbers in the version registry key! Therefore I wrote a workaround as a wxi-include file. My workaround has one disadvantage, the light.exe claims about this part: ...\inc\Upgrade.wxi(14) : warning LGHT1076 : ICE61 : This product should remove only older versions of itself. No Maximum version was detected for the current product. (OLD_PRODUCT_CODE) So, below you can find my solution as wix source code. If anybody has a better idea to deal with it, please let me know. Thank you Thomas Mathis <!-- Workaround for the limitation of msi and windows registry of the version information. The version data of ARP (Add/Remove Programms) are saved in the windows registry as an integer of DWORD. This include file replaces some part of the internal WiX function Upgrade and saves the value as string REG_SZ in the windows registry. With that you can expand the version information of more numbers. The version data $(var.InvernalVersion) should be saved as a string of numbers! For example (please remove the "-" characters before use it): <-?define InvernalVersion="2103000120753" ?-> --> <Include> <Upgrade Id="PUT-GUID-HERE"> <UpgradeVersion OnlyDetect="no" Minimum="0.0.0.0" IncludeMinimum="yes" Property="OLD_PRODUCT_CODE" /> </Upgrade> <!-- Properties --> <Property Id="INTERNAL_VERSION_NEW" Value="$(var.InvernalVersion)" /> <Property Id="UPGRADE_VBSCRIPTS"> <![CDATA[ Sub GetHighestInternalVersion() Set objShell = CreateObject("WScript.Shell") verResult = "" For Each sProductCode In Split(Session.Property("OLD_PRODUCT_CODE"), ";", -1, 1) verTemp = objShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninsta ll\" & sProductCode & "\InternalVersion") If verTemp > verResult Then verResult = verTemp End If Next Session.Property("INTERNAL_VERSION_OLD") = verResult End Sub ]]> </Property> <!-- CustomActions --> <CustomAction Id="InstalledProductFound" VBScriptCall="GetHighestInternalVersion" Property="UPGRADE_VBSCRIPTS" /> <CustomAction Id="NewerVersionFound" Error="!(loc.ErrorNewerVersionInstalled)" /> <!-- Verion Checker, prevent downgrading --> <InstallUISequence> <Custom Action="InstalledProductFound" After="FindRelatedProducts"> <![CDATA[OLD_PRODUCT_CODE]]> </Custom> <Custom Action="NewerVersionFound" After="InstalledProductFound"> <![CDATA[INTERNAL_VERSION_OLD > INTERNAL_VERSION_NEW]]> </Custom> </InstallUISequence> <InstallExecuteSequence> <Custom Action="InstalledProductFound" After="FindRelatedProducts"> <![CDATA[OLD_PRODUCT_CODE]]> </Custom> <Custom Action="NewerVersionFound" After="InstalledProductFound"> <![CDATA[INTERNAL_VERSION_OLD > INTERNAL_VERSION_NEW]]> </Custom> </InstallExecuteSequence> <!--Saves the internal Version--> <DirectoryRef Id="PUT-YOUR-DIR-ID-HERE"> <Component Id="cmpInternalVersion" Guid="PUT-GUID-HERE"> <RegistryKey Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductCode]" Action="createAndRemoveOnUninstall"> <RegistryValue Name="InternalVersion" Action="write" Type="string" Value="$(var.InvernalVersion)"/> </RegistryKey> </Component> </DirectoryRef> </Include> -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/error-CNDL 0242-tp5153566p5159352.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------ ------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users </pre> <BR style="font-size:4px;"> <a href = "http://www.sdl.com"><img src="http://www.sdl.com/images/email logo_150dpi-01.png" alt="www.sdl.com" border="0"/></a> <BR> <font face="arial" size="2" "><a href = "http://www.sdl.com" style="color:005740; font-weight: bold">www.sdl.com</a> <BR> <BR> <font face="arial" size="1" color="#736F6E"> <b>SDL PLC confidential, all rights reserved.</b> If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us.<BR> SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207.<BR> Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK. </font> ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users