Skip to content
⌘ NSIS Forum Archive

NSIS 2.51 and ManifestSupportedOS

3 posts

kalverson#

NSIS 2.51 and ManifestSupportedOS

I could really use the ManifestSupportedOS in version 2.51 - or I need release 3 to be official and not a release candidate. My dilemma:

I am still trying to get this to work. Nullsoft has fixed the OS version issues in their newer release 3.0rc1 (release candidate). In the new version it is possible to add the GUID’s listed below using a Nullsoft directive to the manifest. This allows the API to correctly report the OS detected; i.e. on a Windows 10 machine. However, the new directive is not in version NSIS 2.51 which is what we use in production on Atlas to generate our installs. The only other way to do this is to manually add the entries below that we need using an SDK tool “MT.exe”. I have successfully run the tool to add the manifest entries which do show up when I look using an editing tool. However when I try to launch the executable, I get an error that it failed to start due to an exception. I am download a newer SDK tool set to try again. I’ve tried a few things but still haven’t got it to work. I’ve used the MT.exe tool in the past without it causing an issue starting the application later.
Anders#
Just to clarify, you are using !packhdr to call mt.exe? Maybe mt.exe moves the PE sections or something like that?

Have you tried http://nsis.sourceforge.net/Using_!packhdr ?

It should be trivial for someone to write a tool that just replaces the manifest when called by !packhdr if you cannot use 3rd-party stuff.

NSIS 2.x is in maintenance-mode and will not get these new features.

As a final option you can use the stdutils plugin to detect the version.
kalverson#
Thanks Anders. I took a closer look at the packhdr header and saw that I did not define RequestExecutionLevelManifest so it did not include all of them. I don't see any reason why to ifdef this at all, so I just commented it out in the packhdr header so I get all the OS GUID's on my next build.