Использование пакета Windows App SDK в существующем проекте

Если у вас есть проект рабочего стола, в котором вы хотите использовать Windows App SDK, можно установить последнюю версию пакета NuGet Windows App SDK в проекте. Неупакованные приложения (т. е. приложения, которые не используют MSIX для своей технологии развертывания) должны следовать этой процедуре для использования пакета SDK для приложений для Windows, но она применима и к упакованным приложениям.

Важно!

Если вы работаете с приложением UWP, см. статью Миграция с UWP на Windows App SDK.

Примечание

Эта процедура поддерживается в проектах классических приложений C# .NET 6 (и более поздних версий). Эти проекты могут использовать пакет NuGet из стабильного канала выпуска, предварительной версии канала channge или экспериментального выпуска.

Предварительные требования

  • Visual Studio 2019 или Visual Studio 2022 с необходимыми рабочими нагрузками и компонентами для разработки приложений Для Windows. Дополнительные сведения см. в статье Установка инструментов для Windows App SDK.

Instructions

  1. Откройте существующий проект в Visual Studio.

    Примечание

    Если у вас есть классический проект C#, убедитесь, что элемент TargetFramework в файле проекта назначен моникеру, зависящее от Windows 10, например net6.0-windows10.0.19041.0, чтобы он мог вызывать среда выполнения Windows API. Дополнительные сведения см. в статье Вызов API среды выполнения Windows в классических приложениях. Кроме того, необходимо выбрать версию 18362 или более позднюю версию, так как существует известная проблема, блокирующая приложения, предназначенные для версии 17763.

  2. Убедитесь, что ссылки на пакеты активны:

    1. В Visual Studio, выберите Инструменты -> Диспетчер пакетов NuGet -> Параметры диспетчера пакетов.
    2. Убедитесь, что для формата управления пакетами по умолчанию установлено значение PackageReference.
  3. В обозревателе решений щелкните правой кнопкой мыши нужный проект и выберите пункт Управление пакетами NuGet.

  4. В окне диспетчера пакетов NuGet установите флажок "Включить предварительные выпуски " в верхней части окна, перейдите на вкладку "Обзор " и выполните поиск одного из следующих пакетов:

  5. После обнаружения соответствующего Windows App SDK пакета NuGet выберите пакет и нажмите кнопку "Установить" в правой области окна диспетчера пакетов NuGet.

    Снимок экрана: устанавливаемый пакет NuGet Windows App SDK

    Примечание

    Пакет NuGet Windows App SDK содержит другие вложенные пакеты (включая Microsoft.WindowsAppSDK.Foundation, Microsoft.WindowsAppSDK.WinUI и многое другое), содержащие реализации для определенных компонентов в Windows App SDK. Эти вложенные пакеты нельзя установить по отдельности, чтобы ссылаться только на определенные компоненты в вашем проекте. Необходимо установить основной пакет NuGet Windows App SDK, включающий все компоненты.

  6. Только для неупакованных приложений: прежде чем распаковка может использовать Windows App SDK API и компоненты, приложение должно сначала вызвать среду выполнения Windows App SDK, чтобы ссылаться на пакет платформы Windows App SDK. Дополнительные сведения см. в статье "Загрузка среды выполнения Windows App SDK и учебника. Использование API начального загрузчика в приложении, отличном от MSIX, которое использует Windows App SDK.

  7. Теперь ваше приложение может использовать Windows App SDK API и компоненты, доступные в установленном канале выпуска. Список доступных функций см. в каналах выпуска.

Дополнительные сведения

Если существующий проект является проектом C++, и вы хотите вызвать api-интерфейсы среда выполнения Windows в Windows App SDK, необходимо добавить поддержку C++/WinRT. Ознакомьтесь с поддержкой Visual Studio для C++/WinRT, XAML, расширения VSIX и пакета NuGet. Найдите сведения о пакете NuGet Microsoft.Windows.CppWinRT . Без этого пакета проект не сможет найти файлы заголовков пространства имен для API среда выполнения Windows в Windows App SDK.

Если при попытке использовать компонент Windows App SDK возникает ошибка "Класс не зарегистрирован", может потребоваться добавить в проект динамическую зависимость от пакета Windows App SDK Framework. Дополнительные сведения см. в статье о пакетах платформы MSIX и динамических зависимостях.