It's worse than that: The FileVersion (and ProductVersion) values in the Win32 Version resource type (the 4-part one you refer to) allows 16-bit unsigned values in each of the four parts. The Windows Installer version allows 8-bit unsigned values in the first two parts and 16-bit unsigned values in the last two (although the fourth is ignored). The reason is that the Win32 version internally is a 64-bit number, while the MSI version internally is a 32-bit number. Visual Studio "protects" you by not allowing the fourth part (and further constraining the remaining three) in the Setup projects (so you don't have false expectations nor can you create an "illegal" version).
I don't know the reason. MSI uses the Win32 structure (all 64-bits) when examining files comparing them to the rows in the File table, but it stores just 32-bits for the ProductVersion values it uses to compare MSI files. It may have something to do with the MSI 1.0 method of "registering" products (registry DWORDs) that was kept due to back-compat considerations. However, if you generate patches (MSP) you can use the Win32 notion of a version (4 16-bit numbers, or 64-bits) to order (and override) the version numbers (in other words, the same as the build-number system you use to generate the files' version resources). So, they "upgraded" where they could, while not where they couldn't without breaking things (you can always load an MSI intended for MSI 5.0 using MSI 1.0 and it "has to understand" what it is reading, even if it will reject it because you sent the minimum MSI you support to a higher number). -Blair -----Original Message----- From: Kim Gybels [mailto:kim.gyb...@metris.com] Sent: Wednesday, July 15, 2009 2:34 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Setup upgrade needs to care for 4th part of versionnumber Hi, > " We also ran into this problem. It is just stupid that visual studio projects use 4 part version numbers and MSI only supports 3." > > Visual Studio doesn't. We're talking in the context of major upgrades and the ProductVersion property. In Visual Studio that's the Version property of the Setup Project. If you put 4 digits in there, its build fails, saying "Must be of format ##.##.###". I suspect VS does this to ensure that you can't go ahead and build an upgrade that won't work because, after all, Visual Studio is building an MSI file! > I was talking about the version numbers you can use in the resource files for executables that you create with Visual C++. The version number there has 4 parts... So that is two products made by Microsoft. One saying: look feel free to use 4 version numbers, the other one being the brick wall you run into when trying to create an installer :) - Kim -- *Kim Gybels Software Developer * kim.gyb...@metris.com <mailto:kim.gyb...@metris.com> Tel: +32 16 74 01 01 Fax: +32 16 74 01 02 * Metris Europe * Interleuvenlaan 86 3001 Leuven Belgium www.metris.com <http://www.metris.com/> This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations. ---------------------------------------------------------------------------- -- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users