Hello! Starting from TortoiseSVN 1.14, the minimum supported platform is Windows 10 [1]:
[[[ TortoiseSVN 1.14 requires Windows 10 or later. It won't run on Windows 8.1 anymore. ]]] So I would like to suggest updating the related check in the TortoiseSVN installer. In more detail, TortoiseSVN requires support for the SetThreadDpiAwarenessContext() [2] function that was introduced in Windows 10 version 1607. For detecting this version, I used the existing approach of searching for a system dll with the appropriate build number. Here is a patch in attachments. [1] https://tortoisesvn.net/tsvn_1.14_releasenotes.html [2] https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setthreaddpiawarenesscontext Best Regards, Denis Kovalchuk -- You received this message because you are subscribed to the Google Groups "TortoiseSVN-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tortoisesvn-dev/ed99572a-bda3-4e65-b97e-627485634780n%40googlegroups.com.
Prevent installation on unsupported Windows versions. Starting from TortoiseSVN 1.14, the minimum supported platform is Windows 10 [1]: [[[ TortoiseSVN 1.14 requires Windows 10 or later. It won't run on Windows 8.1 anymore. ]]] TortoiseSVN requires support for the SetThreadDpiAwarenessContext() [2] function that was introduced in Windows 10 version 1607. Detect this version by checking the build number of user32.dll that contains this function. [1] https://tortoisesvn.net/tsvn_1.14_releasenotes.html [2] https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setthreaddpiawarenesscontext Index: src/TortoiseSVNSetup/TortoiseSVN.wxs =================================================================== --- src/TortoiseSVNSetup/TortoiseSVN.wxs (revision 29698) +++ src/TortoiseSVNSetup/TortoiseSVN.wxs (working copy) @@ -31,7 +31,35 @@ <!-- Launch Condition related properties ................................................................................. --> <Property Id="ALLUSERS" Secure="yes">1</Property> - <Condition Message="[ProductName] requires Windows 8.1 or later."><![CDATA[(VersionNT >= 603)]]></Condition> + <!-- msiexec does not have a manifest, so it always reports the version of system dlls as + for Win7 (6.3.x.x). So we check for 6.3 but use the build number to actually check + the Windows version. + + See https://github.com/wixtoolset/issues/issues/5824 --> + + <!-- Windows 10 version 1607 or greater found. + + TortoiseSVN requires support for SetThreadDpiAwarenessContext() [1] function that + was introduced in Windows 10 version 1607 with the build number 14393. So check + the build number of user32.dll that contains this function. + + [1] https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setthreaddpiawarenesscontext --> + <Property Id="WIN10_1607_FOUND" Secure="yes"> + <!-- Search in [SystemFolder] to support the 32-bit version of Windows 10. --> + <DirectorySearch Id="searchSystemWin10" Path="[SystemFolder]" AssignToProperty="yes"> + <FileSearch Id="searchFileWin10" Name="user32.dll" MinVersion="6.3.14392.0"/> + </DirectorySearch> + </Property> + + <!-- Windows 11 or greater found. The first Windows 11 build number is 22000. --> + <Property Id="WIN11FOUND" Secure="yes"> + <DirectorySearch Id="searchSystemWin11" Path="[System64Folder]" AssignToProperty="yes"> + <FileSearch Id="searchFileWin11" Name="shell32.dll" MinVersion="6.3.21999.0"/> + </DirectorySearch> + </Property> + + <Condition Message="[ProductName] requires Windows 10 version 1607 or later.">WIN10_1607_FOUND</Condition> + <?if $(env.Platform) = "win32" ?> <Condition Message="You are attempting to run the 32-bit installer on a 64-bit version of Windows. Please install the 64-bit version of TortoiseSVN instead.">NOT Msix64</Condition> <?endif ?> @@ -94,15 +122,6 @@ <RegistrySearch Key="SOFTWARE\[Manufacturer]" Root="HKLM" Type="raw" Id="LANGUAGEFOLDER_REGSEARCH" Name="LanguageFolderPath" Win64="$(var.Win64YesNo)"/> </Property> - <!-- msiexec does not have a manifest, so it always reports the version of system dlls as - for Win7 (6.3.x.x). So we check for 6.3 but use the build number to actually check - for Win11 --> - <Property Id="WIN11FOUND" Secure="yes"> - <DirectorySearch Id="searchSystem" Path="[System64Folder]" AssignToProperty="yes"> - <FileSearch Id="searchFile" Name="shell32.dll" MinVersion="6.3.21999.0"/> - </DirectorySearch> - </Property> - <!-- properties for the custom actions to (un)register the sparse package --> <Property Id="SPARSEPACKAGEFILE" Value="package.msix" Secure="yes"/> <Property Id="SPARSEPACKAGENAME" Value="3A48D7FC-AEE2-4CBC-91D1-0007951B8006" Secure="yes"/>

