Какова цель каждой папки «Program Files» в архитектуре Arm64?

Попытка пересобрать приложение, но ориентироваться на Arm64 и создать правильный установщик. Есть 3Program Filesпапка:

  • C:\Program Files\
  • C:\Program Files (Arm)\
  • C:\Program Files (x86)\

Какова цель каждой папки? Где должно быть установлено приложение, созданное для архитектуры процессора Arm64?

Для дальнейшего использования здесь приведены переменные среды.

      CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(Arm)=C:\Program Files (Arm)\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(Arm)=C:\Program Files (Arm)
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files

1 ответ

C:\Program Files (Arm)\

Эта папка исчезнет. Вы можете прочитать эту статью и следующие,

«Поддержка 32-битных версий приложений Arm будет удалена в будущем выпуске Windows 11».

Это неудивительно, ведь 32-битных приложений Arm было не так много.

C:\Program Files (x86)\

Эта папка остается неизменной для приложений x86. Вы можете обратиться к этой статье , чтобы узнать, что такое эмуляция.

Эта папка теперь довольно беспорядочна в Windows 11 ARM64, поскольку она принимает три типа:

  • Ваши существующие приложения x64
  • Ваши новые приложения на чистом ARM64
  • Ваши приложения ARM64X

    включая чистые двоичные файлы пересылки, если они используются.

Итак, старый установщик x64 продолжает работать при установке бинарников в эту папку и обеспечивает обратную совместимость. Однако двоичные файлы x64 выполняются в режиме эмуляции.

Наконец, вы перекомпилируете приложения как чистые двоичные файлы ARM64 или ARM64X и устанавливаете их в эту папку, чтобы они выполнялись в исходном виде.

Обратите внимание, что двоичное выполнение ARM64X является сложным, поскольку оно зависит от настроек запуска. Двоичные файлы могут работать в чистом режиме ARM64 (большую часть времени) или в режиме эмуляции x64 (если запускаются по-другому).

Бонус

Итак, когда вы пытаетесь портировать приложение на Windows 11 ARM64, вам нужно определиться, для чего именно вы портируете,

  • Вы можете использовать старые двоичные файлы, если портирование не принесет существенных преимуществ.
  • Вы можете создавать чистые двоичные файлы ARM64, что довольно распространено.
  • Иногда вам может потребоваться создавать двоичные файлы ARM64X (один из случаев — собственные расширения IIS, такие как модуль ASP.NET Core).

Интересно, какой бы путь вы ни выбрали, двоичные файлы устанавливаются в один и тот же каталог..

Другие вопросы по тегам