[wix-users] Allow version string of 4 digits

Herman van Drie hvandrie at outlook.com
Wed Feb 16 03:04:15 PST 2022


I've written a custom CA for this and called it FindRelatedProductsEx.
Here, I've published it on Github:  https://github.com/hvandrie/msiCAFindRelatedProductsEx .

Compile it, and load .dll into Binary table as msiCAFindRelatedProductsEx.dll
And in CustomAction table you define action as: 

Action			Type	Source					Target
FindRelatedProductsEx	1	msiCAFindRelatedProductsEx.dll	FindRelatedProductsEx	

Schedule FindRelatedProductsEx CA right after FindRelatedProducts action in InstallExecuteSequence.

It will now handle 4-digit version strings using ProductVersion and Upgrade table.

Good luck,

Herman
hvandrie at outlook.com

-----Original Message-----
From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Sverre Moe via wix-users
Sent: woensdag 16 februari 2022 11:25
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Cc: Sverre Moe <sverre.moe at gmail.com>
Subject: Re: [wix-users] Allow version string of 4 digits

So Windows will only support 3 digits anyway, even if I use a 4 digits version string. This means that when my application with version 1.10.0 is installed, then if installing the same application with version 1.10.0.1, it will update the already installed 1.10.0 application, instead of installing the 1.10.0.1 application?
So that 1.10.0 == 1.10.0.1 == 1.10.0.37?

Is there any way to configure WiX Toolset to allow building an MSI/EXE with
4 digit version string?

We are using the Java jpackage tool, which calls on WiX Toolset to build the Windows MSI/EXE.

"C:\Program Files\AdoptOpenJDK\jdk-14.0.2.12-hotspot/bin/jpackage.exe"
--type exe --dest
C:\cygwin64\home\build\workspace\application.gui\build\native --name application.gui --app-version 1.10.0.1 --app-image C:\cygwin64\home\build\workspace\application.gui\build\native\application.gui
--resource-dir
C:\cygwin64\home\build\workspace\application.gui\build\package --verbose --temp jpackage-build --description "Application GUI" --vendor "Company LTD" --install-dir application.gui --win-dir-chooser --win-menu --win-shortcut

Running [C:\Program Files (x86)\WiX Toolset v3.11\bin\candle.exe, -nologo, C:\cygwin64\home\build\workspace\application-gui\jpackage-build\config\main.wxs,
-ext, WixUtilExtension, -arch, x64, -out, C:\cygwin64\home\build\workspace\application-gui\jpackage-build\wixobj\main.wixobj,
-dJpAppDescription=Application GUI, -dJpAppVersion=1.10.0, -dJpInstallDirChooser=yes, -dJpProductCode=4d96680d-6c68-36ca-b7f1-72381e745bae,
-dJpAppName=application-gui, -dJpAllowUpgrades=yes, -dJpProductUpgradeCode=5f0df61e-82b8-3945-817a-b926369cb09e,
-dJpIsSystemWide=yes, -dJpAppVendor=Company LTD -dJpConfigDir=C:\cygwin64\home\build\workspace\application-gui\jpackage-build\config]

Running [C:\Program Files (x86)\WiX Toolset v3.11\bin\candle.exe, -nologo, C:\cygwin64\home\build\workspace\application-gui\jpackage-build\config\bundle.wxf,
-ext, WixUtilExtension, -arch, x64, -out, C:\cygwin64\home\build\workspace\application-gui\jpackage-build\wixobj\bundle.wixobj]

Running [C:\Program Files (x86)\WiX Toolset v3.11\bin\light.exe, -nologo, -spdb, -ext, WixUtilExtension, -out, C:\cygwin64\home\build\workspace\application-gui\jpackage-build\images\win-exe.image\application-gui-1.10.0.msi,
-ext, WixUIExtension, -loc,
C:\cygwin64\home\build\workspace\application-gui\jpackage-build\config\MsiInstallerStrings_en.wxl,
-b, C:\cygwin64\home\build\workspace\application-gui\jpackage-build\config,
C:\cygwin64\home\build\workspace\application-gui\jpackage-build\wixobj\main.wixobj,
C:\cygwin64\home\build\workspace\application-gui\jpackage-build\wixobj\bundle.wixobj]


I have a workaround ready, if it is not possible. I could change the application version sent with jpackage.
Using "--app-version 1.10.0", instead of "--app-version 1.10.0.1" works.

tir. 15. feb. 2022 kl. 19:39 skrev Edwin Castro via wix-users <
wix-users at lists.wixtoolset.org>:

> Note that MSI does not stop you from using versions with 4 components 
> for file version nor product version. But as it pertains to the msi's 
> product version, the fourth component will be ignored so that
> ProductVersion=1.10.0.1 and ProductVersion=1.10.0.37 will be evaluated 
> as equivalent ProductVersions. This design requirement comes out of 
> the MSI update design. Check out the details at 
> https://docs.microsoft.com/en-us/windows/win32/msi/patching-and-upgrad
> es
>
> Bundle executables are not bound by this MSI limitation so you can use 
> versions with 4 components with a bundle executable *but* your MSI 
> packages will still need to abide by MSI rules.
>
> --
> Edwin G. Castro
>
>
> On Tue, Feb 15, 2022 at 7:24 AM Coryat, Jim via wix-users < 
> wix-users at lists.wixtoolset.org> wrote:
>
> > I don't think it's a Wix issue as much as it is a windows installer 
> > limitation.
> >
> > https://docs.microsoft.com/en-us/windows/win32/msi/productversion
> >
> >
> >
> > -----Original Message-----
> > From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf 
> > Of Sverre Moe via wix-users
> > Sent: Tuesday, February 15, 2022 8:59 AM
> > To: wix-users at lists.wixtoolset.org
> > Cc: Sverre Moe <sverre.moe at gmail.com>
> > Subject: [wix-users] Allow version string of 4 digits
> >
> > IMPORTANT NOTICE - This message sourced from an external mail server 
> > outside of the Company.
> >
> > Running WiX to produce an MSI/EXE fails, because we are using a 
> > version with 4 digits.
> >
> > Version string may have up to 3 components - major.minor.build .
> > Version string is not compatible with MSI rules [1.10.0.1]
> >
> > We need to support using 4 digits in our version.
> > major.minor.bugfix.patchfix
> >
> > Is there any way this can be done with WiX Toolset when producing an 
> > MSI/EXE?
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant
> >
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.f
> iregiant.com%2F&data=04%7C01%7CJim.Coryat%40softprocorp.com%7C1375
> ff0e526847e32e0308d9f08b53f3%7C8a807b9b02da47f3a903791a42a2285c%7C0%7C
> 0%7C637805303483188493%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ
> QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=AGvJc7l88
> NSOjHAlnNvyqt1Yd0ntNVreOW7j49oIFyg%3D&reserved=0
> > ________________________________
> >  NOTICE: The information contained in this message is proprietary 
> > and/or confidential and may be privileged. If you are not the 
> > intended recipient of this communication, you are hereby notified 
> > to: (i) delete the message and all copies; (ii) do not disclose, 
> > distribute or use the message in
> any
> > manner; and (iii) notify the sender immediately.
> >
> >
> >
> >
> >
> > ____________________________________________________________________
> > WiX Toolset Users Mailing List provided by FireGiant 
> > http://www.firegiant.com/
> >
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant 
> http://www.firegiant.com/
>

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/



More information about the wix-users mailing list