Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существует два способа развертывания Windows App SDK.
- Структуры, зависящие от платформы. Приложение зависит от Windows App SDK среды выполнения и /или пакета Платформы, присутствующих на целевом компьютере. Развертывание, зависящее от фреймворка, является режимом развертывания по умолчанию Windows App SDK для эффективного использования ресурсов компьютера и обслуживаемости.
- автономные. Ваше приложение поставляется вместе с зависимостями Windows App SDK, что устраняет необходимость в отдельной установке среды выполнения на целевом компьютере.
В этом разделе также используются термины упакованное приложение, упакованное приложение с внешним расположением и неупакованное приложение. Сведения об этих терминах см. в обзоре развертывания.
| Развертывание зависимо от платформы | Развертывание автономного модуля | |
|---|---|---|
| Преимущества |
Небольшое развертывание. Распространяется только ваше приложение с другими зависимостями. Пакет среды выполнения Windows App SDK и пакет платформы устанавливаются автоматически приложениями, зависящими от платформы, которые упакованы; или как часть установщика среды выполнения Windows App SDK для приложений, зависящих от платформы, которые либо упакованы с внешним расположением, либо неупакованы. Доступный для обслуживания. Обновления обслуживания Windows App SDK устанавливаются автоматически через пакет Windows App SDK Framework без каких-либо действий, необходимых приложению. |
Управление версией Windows App SDK. Вы управляете версией Windows App SDK, развернутой в приложении. Обслуживание обновлений Windows App SDK не повлияет на приложение, если вы не перестроите и не перераспространите его. Изолировано от других приложений. Приложения и пользователи не могут удалять зависимость Windows App SDK без удаления вашего приложения в целом. Развертывание Xcopy. Поскольку зависимости SDK Windows App переносится вашим приложением, вы можете развернуть приложение, просто используя команду xcopy результаты сборки без каких-либо дополнительных требований к установке. |
| Недостатки |
Дополнительные зависимости установки. Требуется установка пакета среды выполнения Windows App SDK и (или) Платформы, что может добавить сложность для установки приложения. Общие зависимости. Риск удаления общих зависимостей. Приложения или пользователи, удаляющие общие компоненты, могут повлиять на взаимодействие с другими приложениями, которые совместно используют зависимость. Риск совместимости. Риск того, что обновления обслуживания Windows App SDK вносят разрывающие изменения. Хотя обновления обслуживания должны обеспечить обратную совместимость, возможно, что вводятся регрессии. |
Более крупные развертывания (только неупакованные приложения). Так как ваше приложение включает Windows App SDK, размер загрузки и свободное место на жестком диске больше, чем в случае версии, зависящей от платформы. Производительность (только для неупакованных приложений). Медленнее загружаться и использовать больше памяти, так как кодовая страница не предоставляется другим приложениям. Не подлежит ремонту. Windows App SDK версию, распределенную с приложением, можно обновить только путем выпуска новой версии приложения. Вы несете ответственность за интеграцию обновлений обслуживания Windows App SDK в приложение. |
Также см.: Создайте первый проект и Используйте Windows App SDK в существующем проекте.
Замечание
PublishSingleFile (однофайловый EXE-файл) поддерживается в неупакованных, автономных приложениях WinUI 3 (Windows App SDK версии 1.5 и более поздних). Упакованные приложения и приложения, зависящие от платформы, не поддерживаются PublishSingleFile. Сведения о необходимых свойствах MSBuild см. в разделе Single-file EXE.
Дополнительные сведения о развертывании, зависящем от фреймворка
Перед настройкой зависимого от платформы приложения, чтобы узнать больше о зависимостях, которые ваше приложение использует при работе с Windows App SDK, просмотрите архитектуру развертывания для Windows App SDK.
Упакованные приложения
Если вы решили перейти с пакетным приложением, зависящим от платформы (см. обзор Deployment), ниже приведены инструкции по развертыванию среды выполнения Windows App SDK с приложением:
- руководство по развертыванию Windows App SDK для упакованных приложений, зависящих от платформы
- Управление развертыванием MSIX
Упакованный с внешним расположением или распакованными приложениями
Если вы решили использовать упакованное приложение, зависящее от платформы, с внешним расположением, или распакованное приложение, зависящее от платформы (см. Обзор развертывания), ниже приведены инструкции по развертыванию среды выполнения Windows App SDK с приложением:
- руководство по развертыванию Windows App SDK для приложений, зависящих от фреймворка, упакованных с внешним расположением или без упаковки
- Учебное пособие: используйте API начальной загрузки в приложении, упакованном с внешним расположением или неупакованном, которое использует Windows App SDK
Дополнительные сведения о автономном развертывании
См. руководство по развертыванию Windows App SDK для автономных приложений.
Замечание
PublishSingleFile (однофайловый EXE) требует, чтобы приложение было без упаковки и самодостаточным. См. Однофайловый EXE для получения полного списка обязательных свойств MSBuild.
Инициализация Windows App SDK
Способ инициализации Windows App SDK зависит от того, следует ли упаковывать приложение, а также от способа развертывания относительно среды выполнения Windows App SDK. Используйте приведенный ниже раздел, применимый к приложению.
Упакованные приложения
| Как разворачивается ваше приложение | Как инициализировать |
|---|---|
| Зависимость от платформы | См. вызов API развертывания. |
| Замкнутый | Инициализация не требуется. |
Неупакованные приложения и приложения, упакованные с внешним хранилищем
| Как разворачивается ваше приложение | Как инициализировать |
|---|---|
| Зависимость от платформы | См. Использование API загрузчика в приложении, упакованном с использованием внешнего расположения или без упаковки. |
| Замкнутый | См. отказ от (или подключение к) автоматической поддержке UndockedRegFreeWinRT. |
Рекомендации по архитектуре (x64, ARM64)
При развертывании приложения необходимо включить двоичные файлы для каждой архитектуры процессора, необходимые пользователям. Это относится как к режимам, зависящим от платформы, так и к автономным режимам развертывания.
Поддержка ARM64
Windows на устройствах ARM (включая Surface Pro X, Surface Pro 11 и Copilot+ ПК) изначально работает на ARM64. Хотя эмуляция x64 доступна на устройствах ARM64 под управлением Windows 11, нативные двоичные файлы ARM64 обеспечивают более высокую производительность и большее время автономной работы — и рекомендуются, если вам нужна наилучшая работа локальных ИИ-нагрузок на ПК Copilot+.
Нативное развертывание для ARM64
Пакеты MSIX — создайте
.msixbundleпакет, включающий архитектурыx64иARM64. Visual Studio создает их автоматически при сборке для нескольких платформ. Установщик магазинов и приложений выбирает правильную архитектуру во время установки.Автономная публикация — укажите идентификатор среды выполнения (RID) для каждой архитектуры:
dotnet publish -c Release -r win-x64 --self-contained true dotnet publish -c Release -r win-arm64 --self-contained trueC++/WinRT — создайте отдельные конфигурации для
x64иARM64в вашем решении Visual Studio.Приложения, зависящие от платформы. При использовании установщика среды выполнения Windows App SDK убедитесь, что вы предоставляете правильный установщик для конкретной архитектуры. Windows App SDK поставляет отдельные установщики для x64 и ARM64.
Arm64EC — постепенная миграция для больших баз кода C/C++
Если в приложении есть большая собственная база кода (C/C++), полная перекомпиляция в ARM64 может не быть практической на одном шаге. Arm64EC (совместимая с эмуляцией) позволяет смешивать код x64 и ARM64 в одном процессе. Вы перекомпилируете критически важные для производительности модули в собственный ARM64, а остальные модули x64 выполняются под эмуляции — все в одном двоичном файле.
| Approach | лучше всего подходит для | Компромисс |
|---|---|---|
| Полная пересборка ARM64 | Чистые .NET приложения, небольшие проекты C++ | Оптимальная производительность; требует, чтобы все зависимости были совместимы с ARM64 |
| Arm64EC | Крупные приложения C/C++, приложения с плагинами только для x64 или сторонними библиотеками DLL | Поэтапная миграция; эмулируемые части работают медленнее, чем нативные |
| Только x64 (эмуляция) | Приложения, которые не могут быть перекомпилированы и не требуют пиковой производительности | Простейший; сокращение времени работы батареи и более высокая задержка на устройствах ARM64 |
Дополнительные сведения см. в статье Arm64EC — создание и перенос приложений для обеспечения нативной производительности на Arm.
Эмуляция (Prism)
Windows 11 в ARM использует слой эмуляции с именем Prism для запуска приложений x64 и x86 на оборудовании ARM64. Prism преобразует инструкции x86/x64 в ARM64 во время выполнения, обеспечивая широкую совместимость приложений без необходимости повторной компиляции.
- Эмуляция x64 — доступна только на Windows 11 устройствах ARM64 (не Windows 10 в ARM).
- Эмуляция x86 — доступна как на Windows 10, так и на Windows 11 устройствах ARM64.
- Производительность — эмулируемые приложения обычно обеспечивают приемлемую производительность в задачах повышения производительности, но приложения с интенсивной графикой или высокой вычислительной нагрузкой значительно выигрывают от нативной сборки ARM64 или Arm64EC.
Подсказка
Если вы используете только x64, приложение по-прежнему работает на устройствах ARM64 с помощью эмуляции Prism (только Windows 11). Однако для рабочих приложений настоятельно рекомендуется использовать собственные сборки ARM64— эмулированные приложения используют больше батареи и имеют более высокую задержку. На ПК Copilot+ нативная архитектура ARM64 может обеспечить наилучшую производительность для задач ИИ, выполняемых локально на устройстве.
Для отправки в Store загрузите пакеты для конкретных архитектур или пакет, включающий оба варианта. Магазин предоставляет только соответствующую архитектуру каждому устройству.
Связанные темы
- Общие сведения о развертывании
- Архитектура развертывания Windows App SDK
- руководство по развертыванию Windows App SDK для упакованных приложений, зависящих от платформы
- Управление развертыванием MSIX
- руководство по развертыванию Windows App SDK для приложений, зависящих от фреймворка, упакованных с внешним расположением или без упаковки
- Учебное пособие: используйте API начальной загрузки в приложении, упакованном с внешним расположением или неупакованном, которое использует Windows App SDK
- руководство по развертыванию Windows App SDK для автономных приложений
- Создайте свой первый проект WinUI
- Использовать Windows App SDK в существующем проекте
Windows developer