Update installer.in.iss to support ARM64 #250
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Release notes Inno Setup 6.3.0:
Support for Arm64 systems improved, and related enhancements
Setup now officially supports the installation of x64 apps on Arm64 Windows 11 systems, which are able to run x64 binaries via emulation. To enable your x64 app installers to run properly on Arm64 Windows 11, some minor changes may be needed in your scripts. Most importantly:
ArchitecturesAllowed
andArchitecturesInstallIn64BitMode
, change any use ofx64
tox64compatible
.Check
parameters and[Code]
, change any use ofIsX64
toIsX64Compatible
.[Code]
, if there are anyProcessorArchitecture = paX64
comparisons, replace them with calls toIsX64Compatible
.The key difference between
x64/IsX64
and the newx64compatible/IsX64Compatible
is that the latter matches both x64 Windows and Arm64 Windows 11.In most cases, you should make the above changes, because otherwise, users on Arm64 systems may not be able to run your installers. For example, an
ArchitecturesAllowed=x64
setting will only allow the installer to run on x64 Windows — not on Arm64 Windows 11. Or, if you ship x86 and x64 versions of your app in the same installer, the 32-bit x86 version may be chosen instead of the expected x64 version when running on Arm64 Windows 11.The
[Setup]
section directivesArchitecturesAllowed
andArchitecturesInstallIn64BitMode
have been enhanced:arm32compatible
matches systems capable of running 32-bit Arm binaries.x64compatible
matches systems capable of running x64 binaries.x64os
matches systems running x64 Windows only. (Equivalent to the existing x64 identifier, which is now deprecated.)x86compatible
matches systems capable of running 32-bit x86 binaries.x86os
matches systems running 32-bit x86 Windows only. (Equivalent to the existing x86 identifier.)win64
matches systems running 64-bit Windows, regardless of architecture.See the new Architecture Identifiers help topic for further details on each.
and
operator, for example, it is possible to require two architecture identifiers to match at the same time. See theArchitecturesAllowed
help topic for usage examples.The
x64
architecture identifier is now deprecated. If it is used, the compiler will issue a warning and substitutex64os
, which has the same effect. But as mentioned above, in most cases, scripts should be changed to usex64compatible
because it matches both x64 Windows and Arm64 Windows 11.