GetVersion(Ex) requires that the EXE be manifested to declare explicit support for the OS on which it's installing. This may not be what people want. Instead, you can GetProcAddress() "RtlGetVersion" from ntdll.dll and get the OS version without requiring the EXE to be manifested.
Because we have to keep manifesting bundles just to support newer versions of Windows. It's a mundane task that can be avoided with RtlGetVersion. Besides, while it may be uncommon to require detecting for newer versions of an OS that haven't even shipped yet, some people may want to block on them because they haven't been tested. If Burn isn't manifested accordingly early enough, GetVersion(Ex) lies and the product that should block now gets installed on the newer OS that hasn't yet been tested.
We have to continue to manifest the Burn stub so this change would be to get correct VersionNT values for OSes before they're publicly released and the new compatibility guids are documented and added to the stub. So I'm fine with this change in v3.x if implementing it were to scratch someone's itch.
Originally posted by barnson Release changed from v4.0 to v3.8