Jul 14, 2010 at 12:00 PM
Edited Jul 14, 2010 at 12:02 PM
All Windows 7's are identified as win7 today (code in dotNetInstallerTools/OsUtils.cpp).
if ( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1 && osvi.wProductType == VER_NT_WORKSTATION)
os = win7;
But when SP1 is available, it's likely to change to something like this.
else if ( osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0 && osvi.wProductType == VER_NT_WORKSTATION)
os = winVista;
if (osvi.wServicePackMajor == 1)
os = winVistaSp1;
else if (osvi.wServicePackMajor >= 2)
os = winVistaSp2;
Which means that anything above SP2 for Vista becomes SP2.
Os identifiers are added (could be done by you, send us a patch) as soon as we know what an OS looks like - whoever runs it first.
Microsoft doesn't release service packs and operating systems every day, DNI generally ships more often. I recommend adding support for a specific new OS version to DNI and using a beta build as soon as possible. And don't tell your customers you support
an OS until you have really tested your application on it :)
If an OS has never been seen (Windows 8), it will be 0 and DNI won't run, but in the case of an already supported OS (Windows 7), it will simply be win7 when service packs release.