Resolved fixed v3.8 burn 0 Assigned to wixsupport Updated 2013-10-28 @ 12:50 Opened 2013-07-19 @ 01:23 by sf

Bug 4061 | Call RtlGetVersion out of ntdll.dll to get OS version

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.


Migrated for heaths from: http://sourceforge.net/p/wix/bugs/3345/

Error! Something went awry while logging in. Please, try again.

Error! Something went awry while submitting your changes. Please, try again.

Preview

Comment from sf 2013-07-25 @ 06:31

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.

Comment from sf 2013-07-25 @ 06:31

Why is this better than explicit manifesting or the IsWindows*OrGreater helpers?

Comment from bobarnson 2013-08-24 @ 22:02
  • Release changed from v4.0 to v3.8
  • Status changed from Untriaged to Open

We have to continue to manifest the Burn stub so this change would be to get correct VersionNT[64] 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.

Edited by wixsupport 2013-09-18 @ 15:42
  • AssignedTo set to wixsupport
Comment from bobarnson 2013-10-24 @ 16:24
  • Area set to burn
  • Text changed from 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. --- *Migrated for **[heaths](http://sourceforge.net/u/heaths/profile/)** from: [http://sourceforge.net/p/wix/bugs/3345/](http://sourceforge.net/p/wix/bugs/3345/)* to 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. --- *Migrated for **[heaths](http://sourceforge.net/u/heaths/profile/)** from: [http://sourceforge.net/p/wix/bugs/3345/](http://sourceforge.net/p/wix/bugs/3345/)*

Blair, any progress?

Comment from wixsupport 2013-10-24 @ 18:25

I believe I have this correctly scoped and I'll have a fix ready this weekend.

Comment from wixsupport 2013-10-28 @ 12:50
  • Resolution set to fixed
  • Status changed from Open to Resolved

Committed by barnson 9 hours ago. Commit d239a866a40b.