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\Uninstall\" & 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-CNDL0242-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