Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In my WiX-based MSI project, why does ICE24 tell me '2014.1.1.4' is an invalid version string?

I am using WiX 3.7 to build an MSI. When I build my *.wixproj project, I get the following error:

error LGHT0204: ICE24: ProductVersion: '2014.1.1.4' is an invalid version string.

My company uses an unusual versioning convention where the release year is the major version. But according to this blog,

A version string has the format xxxxx.xxxxx.xxxxx.xxxxx where x is a digit. The maximum acceptable version string is 65535.65535.65535.65535.

If that is true, then why is ICE24 triggering on this product version?

like image 602
Dan Jagnow Avatar asked Nov 27 '13 15:11

Dan Jagnow


1 Answers

I'm answering my own question because I couldn't find any other coverage of ICE24 on StackOverflow. The MSDN documentation on ICE24 links to details about the ProductVersion property. Here's what it has to say:

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.

So the problem is that my major version (2014) exceeds the maximum value of 255.

The fourth digit is not a problem. According to MSDN:

Note that Windows Installer uses only the first three fields of the product version. If you include a fourth field in your product version, the installer ignores the fourth field.

So the moral of the story is to keep your major and minor version numbers small. Hope this helps someone else!

like image 101
Dan Jagnow Avatar answered Nov 22 '22 06:11

Dan Jagnow