Operating system versioning

Platform

Clients – Windows 8
Servers – Windows Server 2012

Description

The internal version number for Windows 8 and Windows Server 2012 is 6.2. All of the versioning APIs will return this version number (GetVersion, GetVersionEx).

Manifestation

The manifestation of this change is app-specific. This means that any app that specifically checks for the operating system version will get a higher version number, which can lead to one or more of these situations:

  • App installers might be unable to install the app, and apps might be unable to start
  • Apps might become unstable or crash
  • Apps might generate error messages, but continue to function properly

Mitigation

Use these VersionLie shims for client apps that rely on a previous version:

  • Win7RTMVersionLie (can also be used on server)
  • VistaSP2VersionLie
  • WinXPSP3VersionLie
To check for the version without blocking the user from installing or running the app do a “greater than or equal to check.” You can use this with the VerifyVersionInfo Win32 API.

Solution

Generally, apps should not perform operating system version checks. If an app needs a specific feature, it is preferable to try to find the feature, and fail only if the needed feature is missing. At a minimum, apps should always accept version numbers greater than or equal to the lowest supported version of the operating system. Exceptions should occur only if there is a specific legal, business, or system-component requirement.

Resources

 

 

Build date: 6/21/2013

Community Additions

Show:
© 2014 Microsoft