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

2.2k views Asked by At

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?

1

There are 1 answers

4
Dan Jagnow On BEST ANSWER

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!