C:\Program Files (Arm)\
This folder is going away. You can read this article and the following,
"Support for 32-bit Arm versions of applications will be removed in a future release of Windows 11."
This is not surprising because there weren't a lot of 32-bit Arm applications.
C:\Program Files (x86)\
This folder remains the same for x86 applications. You might refer to this article to learn the emulation behind.
C:\Program Files\
This folder is rather messy now on Windows 11 ARM64, as it accepts three kinds,
- Your existing x64 applications
- Your new pure ARM64 applications
- Your ARM64X applications
including pure forwarder binaries if in use.
So, an old x64 installer continues to work when installing binaries to this folder and achieve backward compatibility. However, x64 binaries are executed under emulation.
At last, you recompile the applications as pure ARM64 or ARM64X binaries and install to this folder, so that they are executed natively.
Note that ARM64X binary execution is tricky as it depends on the launching settings. The binaries might run in pure ARM64 mode (most of the time), or x64 emulation mode (if launched differently).
Bonus
So, when you try to port an application to Windows 11 ARM64, you need to decide what exactly you are porting for,
- You can use the old binaries if porting won't give significant benefits.
- You can produce pure ARM64 binaries which is rather common.
- You might need to produce ARM64X binaries sometimes (one case is IIS native extensions like ASP.NET Core module).
Interestingly no matter which path you choose, the binaries install to the same C:\Program Files\
.