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

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

Важно!

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

Примечание

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

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

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

Инструкции

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

    Примечание

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

  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. Вы не можете установить эти вложенные пакеты по отдельности, чтобы ссылаться только на определенные компоненты в проекте. Необходимо установить основной Windows App SDK пакет NuGet, включающий все компоненты.

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

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

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

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

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