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"/>

Reply via email to