Обновление архитектуры приложений с Arm32 до Arm64
Статья
В этом руководстве описаны рекомендуемые шаги по изменению существующего приложения с поддержкой 32-разрядной архитектуры платформы Arm на более обновленную 64-разрядную архитектуру Arm, добавив необходимую конфигурацию с помощью Visual Studio. Это обновление поможет приложению работать на последних устройствах Windows на устройствах Arm, использующих 64-разрядные процессоры Arm (ARM64/AArch64).
Этот раздел относится к приложениям UWP, которые не имеют целевого объекта ARM64. Старые шаблоны проектов UWP создали целевой объект ARM32 (или AArch32), но не включал поддержку ARM64 (AArch64).
Чтобы проверить текущую платформу решений для приложения, чтобы узнать, присутствует ли ARM64, откройте код проекта приложения в Visual Studio и в раскрывающемся меню "Платформы решений" на панели инструментов "Стандартный" выберите Configuration Manager... (также доступно в меню "Сборка"), где вы сможете просмотреть список платформ решений и проверить наличие ARM64.
Примечание
Устройства Windows, работающие на процессоре Arm (например, процессоры Snapprocess из Qualcomm), больше не будут поддерживать AArch32 (Arm32). Это изменение влияет на приложения универсальная платформа Windows, предназначенные для AArch32 (Arm32). Поддержка 32-разрядных версий приложений Arm будет удалена в будущем выпуске Windows 11.. Системные двоичные файлы для поддержки ARM32 (присутствуют в папке sysarm32 ) также будут удалены. После этого изменения для небольшого количества затронутых приложений функции приложений могут отличаться, и вы можете заметить разницу в производительности. Поэтому мы рекомендуем обновить целевые платформы до AArch64 (Arm64), которая поддерживается на всех устройствах Windows на устройствах Arm, как можно скорее, чтобы клиенты могли продолжать наслаждаться лучшими возможностями. Следуйте инструкциям на этой странице, чтобы обновить приложения до AArch64 (Arm64).
Добавление конфигурации Arm64 в проект
Чтобы добавить платформу решения ARM64 в существующий код проекта приложения:
Откройте решение (код проекта) в Visual Studio (требуется Visual Studio 2017 версии 15.9 или более поздней).
В раскрывающемся меню "Платформы решений" на панели инструментов "Стандартный" (или в меню "Сборка" выберите Configuration Manager...
Откройте раскрывающееся меню "Активная платформа решения" и выберите <новый...>.
В раскрывающемся меню "Введите или выберите новую платформу" выберите ARM64 и убедитесь, что для параметра "Копировать параметры из" задано значение ARM с включенным флажком "Создать новые платформы проектов", а затем нажмите кнопку "ОК".
Создание решения Arm64
После добавления платформы решения Arm64 в существующий проект или решение, если вы хотите подтвердить правильность сборки приложения Arm64, закройте окно "Активная платформа решения" и измените параметр сборки с отладки на выпуск. В раскрывающемся меню "Сборка" выберите "Перестроить решение " и дождитесь перестроения проекта. Вы должны получить выходные данные "Перестроить все успешно". Если нет, см . раздел "Устранение неполадок " ниже.
(Необязательно): убедитесь, что двоичный файл приложения теперь создан для архитектуры Arm64, открыв каталог проекта в PowerShell (щелкните правой кнопкой мыши проект приложения в Visual Studio Обозреватель решений и выберите "Открыть в терминале"). Измените каталоги, чтобы выбрать новый bin\ARM64\Release каталог проекта. Введите команду: dumpbin .\<appname>.exe (замена <appname> именем приложения). Затем введите команду: dumpbin /headers .\<appname>.exe Прокрутите в результатах вывода терминала, найдите FILE HEADER VALUES раздел и подтвердите, что первая строка имеет значение AA64 machine (ARM64).
Публикация обновленного приложения в Microsoft Store
После создания версии приложения Arm64, выполнив описанные выше действия по настройке, вы можете обновить существующий пакет приложения в Microsoft Store, перейдя на панель мониторинга Центра партнеров и добавив в отправку только что созданные двоичные файлы ARM64. (Это возможность также удалить предыдущие двоичные файлы ARM32.
Если при переносе приложения Arm32 в Arm64 возникают проблемы, ниже приведены некоторые распространенные решения.
Зависимость, не скомпилированная для ARM64, блокирует выполнение успешной сборки
Если вы не можете выполнить сборку из-за зависимости, будь то внутренняя, от 3-сторонней или из библиотеки с открытым кодом, вам потребуется либо найти способ обновления этой зависимости для поддержки архитектуры ARM64 или удаления его.
Для внутренних зависимостей рекомендуется перестроить зависимость для поддержки ARM64.
Для 3-х сторонних зависимостей рекомендуется подать запрос на перестроение хранителя с поддержкой ARM64.
Для зависимостей открытый код рекомендуется сначала проверить vcpkg, чтобы узнать, существует ли более новая версия зависимости, включающая поддержку ARM64, на которую можно обновить. Если обновление не существует, рассмотрите возможность добавления поддержки ARM64 в пакет самостоятельно. Многие открытый код обслуживающие будут благодарны за вклад.
Последним вариантом будет удаление и(или) замена зависимости от проекта приложения.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о Windows on Arm
Windows on Arm — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: