diff --git a/Docs/src/attributes.but b/Docs/src/attributes.but index 9682cefe..c45d11cf 100644 --- a/Docs/src/attributes.but +++ b/Docs/src/attributes.but @@ -291,9 +291,9 @@ See \W{http://msdn.microsoft.com/en-us/library/dd464660}{MSDN} for more informat \S2{amanifestsupportedos} ManifestSupportedOS -\c none|all|WinVista|\\Win7|Win8\\|{GUID} [...] +\c none|all|WinVista|\\Win7|Win8|Win8.1\\|{GUID} [...] -Declare that the installer is compatible with the specified Windows version(s). This adds a SupportedOS entry in the compatibility section of the application manifest. The default list of Win7+Win8 will probably be updated to include newer Windows versions in the future. \e{none} is the default if \R{arequestexecutionlevel}{RequestExecutionLevel} is set to \e{none} for compatibility reasons. +Declare that the installer is compatible with the specified Windows version(s). This adds a SupportedOS entry in the compatibility section of the application manifest. The default list of Win7+Win8+Win8.1 will probably be updated to include newer Windows versions in the future. \e{none} is the default if \R{arequestexecutionlevel}{RequestExecutionLevel} is set to \e{none} for compatibility reasons. You can read more about the changes in behavior on \W{http://msdn.microsoft.com/en-us/library/windows/desktop/hh848036}{MSDN}. diff --git a/Docs/src/history.but b/Docs/src/history.but index ff441570..af8b9d9d 100644 --- a/Docs/src/history.but +++ b/Docs/src/history.but @@ -10,6 +10,8 @@ Released on ?, 2013 \b Default verbosity is /V3 without logo, MakeNSISW still uses /V4. +\b \R{amanifestsupportedos}{ManifestSupportedOS} added support for the Windows 8.1 Preview GUID and it is set by default to avoid GetVersionEx compatibility behavior. + \S2{} Minor Changes \b Fixed !finalize %1 diff --git a/Source/manifest.cpp b/Source/manifest.cpp index c7aade2e..59972b75 100644 --- a/Source/manifest.cpp +++ b/Source/manifest.cpp @@ -57,6 +57,7 @@ bool SupportedOSList::append(const TCHAR* osid) else if (!_tcsicmp(osid,_T("WinVista"))) guid = _T("{e2011457-1546-43c5-a5fe-008deee3d3f0}"); else if (!_tcsicmp(osid,_T("Win7"))) guid = _T("{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"); else if (!_tcsicmp(osid,_T("Win8"))) guid = _T("{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"); + else if (!_tcsicmp(osid,_T("Win8.1"))) guid = _T("{1f676c76-80e1-4239-95bb-83d0f6d0da78}"); if (guid) { diff --git a/Source/manifest.h b/Source/manifest.h index 57045624..3bcb79bf 100644 --- a/Source/manifest.h +++ b/Source/manifest.h @@ -71,12 +71,14 @@ namespace manifest append(_T("WinVista")); append(_T("Win7")); append(_T("Win8")); + append(_T("Win8.1")); } void setdefault() { m_list.deleteall(); append(_T("Win7")); append(_T("Win8")); + append(_T("Win8.1")); // In the default list because GetVersion(Ex) supposedly lies if this is not set in the manifest m_isdefaultlist = true; } }; diff --git a/Source/tokens.cpp b/Source/tokens.cpp index c7c5713d..08fbbc9a 100644 --- a/Source/tokens.cpp +++ b/Source/tokens.cpp @@ -241,7 +241,7 @@ static tokenType tokenlist[TOK__LAST] = {TOK_XPSTYLE, _T("XPStyle"),1,0,_T("(on|off)"),TP_GLOBAL}, {TOK_REQEXECLEVEL, _T("RequestExecutionLevel"),1,0,_T("none|user|highest|admin"),TP_GLOBAL}, {TOK_MANIFEST_DPIAWARE,_T("ManifestDPIAware"),1,0,_T("notset|true|false"),TP_GLOBAL}, -{TOK_MANIFEST_SUPPORTEDOS,_T("ManifestSupportedOS"),1,-1,_T("none|all|WinVista|Win7|Win8|{GUID} [...]"),TP_GLOBAL}, +{TOK_MANIFEST_SUPPORTEDOS,_T("ManifestSupportedOS"),1,-1,_T("none|all|WinVista|Win7|Win8|Win8.1|{GUID} [...]"),TP_GLOBAL}, {TOK_P_PACKEXEHEADER,_T("!packhdr"),2,0,_T("temp_file_name command_line_to_compress_that_temp_file"),TP_ALL}, {TOK_P_FINALIZE,_T("!finalize"),1,0,_T("command_with_%1"),TP_ALL}, {TOK_P_SYSTEMEXEC,_T("!system"),1,2,_T("command [<|>|<>|=) retval]"),TP_ALL},