The Rust standard library has needed Windows 10 since 1.78, so on Windows 7 and 8 PhotoCraft fails at launch with "The procedure entry point ProcessPrng could not be located in the dynamic link library bcryptprimitives.dll" (#2310). The MSI installed anyway. It now has a launch condition: a registry search sets WINDOWS10ORLATER from HKLM\...\Windows NT\CurrentVersion\CurrentMajorVersionNumber, which exists only from Windows 10 on (in the 32- and 64-bit views), and without it the installer stops with "PhotoCraft needs Windows 10 or later." Repair and uninstall still run (Installed). MSI's VersionNT isn't used: it has reported both 603 and 1000 on Windows 10. The README's Windows downloads now say Windows 10 or later is required; the portable zip can't check, as Windows rejects the exe before any of its code runs. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6a852f8852
commit
20cb95bc27
|
|
@ -331,6 +331,8 @@ sha256-verified. Fetch them with `cargo xtask corpus --all` and run the tests wi
|
||||||
| arm64 (Snapdragon and other ARM PCs) | `photocraft-<ver>-windows-arm64.msi` | `photocraft-<ver>-windows-arm64-portable.zip` |
|
| arm64 (Snapdragon and other ARM PCs) | `photocraft-<ver>-windows-arm64.msi` | `photocraft-<ver>-windows-arm64-portable.zip` |
|
||||||
| x86 (32-bit) | `photocraft-<ver>-windows-x86.msi` | `photocraft-<ver>-windows-x86-portable.zip` |
|
| x86 (32-bit) | `photocraft-<ver>-windows-x86.msi` | `photocraft-<ver>-windows-x86-portable.zip` |
|
||||||
|
|
||||||
|
Windows 10 or later is required. On Windows 7 and 8 the app can't start (the installer says so).
|
||||||
|
|
||||||
Installers and executables are code-signed.
|
Installers and executables are code-signed.
|
||||||
|
|
||||||
### macOS
|
### macOS
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,6 @@
|
||||||
<String Id="WelcomeDlgTitle" Value="{\WixUI_Font_Bigger}Welcome to the [ProductName] [PhotocraftVersion] Setup Wizard" />
|
<String Id="WelcomeDlgTitle" Value="{\WixUI_Font_Bigger}Welcome to the [ProductName] [PhotocraftVersion] Setup Wizard" />
|
||||||
<String Id="WelcomeDlgDescription" Value="The Setup Wizard will install [ProductName] version [PhotocraftVersion] on your computer. Click Next to continue or Cancel to exit the Setup Wizard." />
|
<String Id="WelcomeDlgDescription" Value="The Setup Wizard will install [ProductName] version [PhotocraftVersion] on your computer. Click Next to continue or Cancel to exit the Setup Wizard." />
|
||||||
<String Id="VerifyReadyDlgInstallTitle" Value="{\WixUI_Font_Title}Ready to install [ProductName] [PhotocraftVersion]" />
|
<String Id="VerifyReadyDlgInstallTitle" Value="{\WixUI_Font_Title}Ready to install [ProductName] [PhotocraftVersion]" />
|
||||||
|
<String Id="RequiresWindows10" Value="PhotoCraft needs Windows 10 or later. This version of Windows can't run it." />
|
||||||
<String Id="ExitDialogTitle" Value="{\WixUI_Font_Bigger}Completed the [ProductName] [PhotocraftVersion] Setup Wizard" />
|
<String Id="ExitDialogTitle" Value="{\WixUI_Font_Bigger}Completed the [ProductName] [PhotocraftVersion] Setup Wizard" />
|
||||||
</WixLocalization>
|
</WixLocalization>
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,18 @@
|
||||||
DowngradeErrorMessage="A newer version of PhotoCraft is already installed." />
|
DowngradeErrorMessage="A newer version of PhotoCraft is already installed." />
|
||||||
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
|
<MediaTemplate EmbedCab="yes" CompressionLevel="high" />
|
||||||
|
|
||||||
|
<!-- Windows 10 or later. The Rust standard library has needed it since 1.78: on Windows 7 and
|
||||||
|
8 the app fails at launch with "The procedure entry point ProcessPrng could not be located
|
||||||
|
in bcryptprimitives.dll" (#2310), so the installer says so instead of installing it.
|
||||||
|
`CurrentMajorVersionNumber` exists only from Windows 10 on, in the 32- and 64-bit
|
||||||
|
registry views alike; MSI's own VersionNT has reported both 603 and 1000 there.
|
||||||
|
`Installed` keeps repair and uninstall working on any Windows. -->
|
||||||
|
<Property Id="WINDOWS10ORLATER" Secure="yes">
|
||||||
|
<RegistrySearch Id="WindowsMajorVersion" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion"
|
||||||
|
Name="CurrentMajorVersionNumber" Type="raw" />
|
||||||
|
</Property>
|
||||||
|
<Launch Condition="Installed OR WINDOWS10ORLATER" Message="!(loc.RequiresWindows10)" />
|
||||||
|
|
||||||
<!-- MSI caches this icon using its Id as the filename. Advertised shortcuts to an
|
<!-- MSI caches this icon using its Id as the filename. Advertised shortcuts to an
|
||||||
.exe need an .exe icon identifier (ICE50), even when the source is an ICO. -->
|
.exe need an .exe icon identifier (ICE50), even when the source is an ICO. -->
|
||||||
<Icon Id="PhotocraftIcon.exe" SourceFile="$(var.IconPath)" />
|
<Icon Id="PhotocraftIcon.exe" SourceFile="$(var.IconPath)" />
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue