Valid values: | yes or no or x86 or x64 |
Default value: | yes |
This tells the compiler which type of Setup to create. If this is no, it compiles the setup data into at least three files: setup.exe, setup-0.bin, and setup-1.bin. The only reason you would probably want to use no is for debugging purposes. Otherwise, it compiles all setup data into a single EXE
When all setup data is compiled into a single EXE, a "Setup Loader" program is used, called SetupLdr. When using yes or x86, a 32-bit version of SetupLdr is used which runs on systems capable of running 32-bit x86 binaries. This includes systems running x86 Windows, x64 Windows, and also Arm64 Windows 10 and 11 systems, which have the ability to run x86 binaries via emulation.
Otherwise, when using x64, a 64-bit version of SetupLdr is used which runs on systems capable of running x64 binaries. This includes systems running x64 Windows, and also Arm64-based Windows 11 systems, which have the ability to run x64 binaries via emulation.
Note: Using x64 does not mean that Setup itself will also be 64-bit: Setup itself is currently always built as a 32-bit x86 binary. Using x64 anyway has several benefits: your installer initially presents itself as a native 64-bit executable, the 64-bit loader has high-entropy ASLR enabled, and it no longer uses the WOW64 emulation layer. Additionally, it can help satisfy policy or third-party requirements that mandate 64-bit installers, even while the main Setup program is still 32-bit.
Note: Do not use no on an installation which uses disk spanning (DiskSpanning=yes). When using yes, the setup program is copied to and run from the user's TEMP directory. This does not happen when using no, and could result in errors if Windows tries to locate the setup.exe file on the disk and can't find it because a different disk is in the drive.
Note: Do not use no to avoid digital signature verification startup delays on a large Setup, use disk spanning instead. See SignTool for more information. Also note that digitally signing Setup when using no will lead to an invalid digital signature for Uninstall.