Поделиться через


Заметки о выпуске канала предварительной версии для пакета SDK для приложений Windows 1.0

Внимание

Канал предварительной версии не поддерживается для использования в рабочих средах, а приложения, использующие предварительные версии, не могут быть опубликованы в Microsoft Store.

Канал предварительной версии включает выпуски пакета SDK для приложений Windows с функциями предварительной версии канала на поздних этапах разработки. Предварительные версии не включают экспериментальные функции и API, но могут по-прежнему подвергаться критическим изменениям до следующего стабильного выпуска.

Важные ссылки:

Последний выпуск канала предварительной версии:

Последний выпуск стабильного канала:

Версия 1.0 Preview 3 (1.0.0-preview3)

Предварительная версия 3 — это последний выпуск канала предварительной версии для пакета SDK для приложений Windows версии 1.0. Предварительная версия 3 поддерживает все функции канала предварительной версии.

Скачивание расширений Visual Studio версии 1.0 (предварительная версия 3)

Примечание.

Если у вас уже установлены расширения Visual Studio для пакета SDK для Приложений Windows (VSIX), удалите их перед установкой новой версии. Инструкции см. в статье Управление расширениями для Visual Studio.

В таблице ниже можно скачать расширения Visual Studio (VSIX) для выпуска 1.0 ( предварительная версия 3). Для всех версий см . последние загрузки пакета SDK для приложений Windows. Если вы еще этого не сделали, начните с настройки среды разработки, выполнив действия, описанные в разделе "Установка средств для пакета SDK для приложений Windows".

Приведенные ниже расширения предназначены для языка программирования и версии Visual Studio.

Скачивание 1.0 (предварительная версия 3) Description
Расширение Visual Studio 2019 на C# Создайте приложения C# с расширением Visual Studio 2019 для пакета SDK для приложений Windows.
Расширение Visual Studio 2019 на C++ Создание приложений C++ с помощью расширения Visual Studio 2019 для пакета SDK для приложений Windows.
Расширение Visual Studio 2022 C# Создание приложений C# с помощью расширения Visual Studio 2022 для пакета SDK для приложений Windows.
Расширение Visual Studio 2022 на C++ Создайте приложения C++ с расширением Visual Studio 2022 пакета SDK для приложений Windows.
Пакеты установщика .exe и MSIX Разверните пакет SDK для приложений Windows с помощью установщика .exe и пакетов MSIX.

В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для версии 1.0 ( предварительная версия 3).

WinUI 3 (1.0.0-preview3)

Теперь мы поддерживаем развертывание приложений WinUI 3 без упаковки MSIX. Чтобы настроить приложение WinUI 3 (пакет SDK для приложений Windows), см. статью "Создание первого проекта WinUI 3" для поддержки распаковки развертывания.

Важные ограничения:

  • Непакованные приложения WinUI 3 поддерживаются только в Windows версии 1909 и более поздних версий.
  • Непакованные приложения WinUI 3 поддерживаются в x86 и x64; поддержка arm64 будет добавлена в следующем стабильном выпуске.
  • Средства упаковки MSIX для Visual Studio 2019 или Visual Studio 2022 требуются для распакованных приложений.
  • В распаковке приложения может появиться запрос на установку .NET 3.5; Если вы это делаете, то его можно игнорировать.
  • Некоторые API в настоящее время не поддерживаются в распакованных приложениях. Мы стремимся исправить это в следующем стабильном выпуске. Несколько примеров:
  • Элементы управления ListView, CalendarView и GridView используют неправильные стили, и мы стремимся исправить это в следующем стабильном выпуске.

Дополнительные сведения о начале разработки с Помощью WinUI 3 см. в следующем разделе:

Другие ограничения и известные проблемы:

  • Распаковка приложений не поддерживается в Windows 10 версии 1809. Мы стремимся исправить это в следующем выпуске в стабильном канале.

  • Однопроектное приложение MSIX C# не компилируется, если средства UWP на C++ не установлены. Если у вас есть проект MSIX для C# с одним проектом, вам потребуется установить дополнительный компонент C++ (v14x) универсальная платформа Windows Tools.

  • В этом выпуске представлены шаблоны проектов "Пустое приложение" (WinUI 3 в классическом приложении) для C# и C++. Эти шаблоны позволяют создавать приложение в пакет MSIX без использования отдельного проекта упаковки (см. раздел "Упаковка приложения с помощью единого проекта MSIX"). Эти шаблоны имеют некоторые известные проблемы в этом выпуске:

    • Отсутствует пункт меню публикации, пока не перезапустите Visual Studio. При создании приложения в Visual Studio 2019 и Visual Studio 2022 с помощью шаблона проекта "Пустое приложение" (WinUI 3 в классическом режиме) команда публикации проекта не отображается в меню, пока не закройте и снова не откройте Visual Studio.

    • Ошибка при добавлении проектов статической и динамической библиотеки C++ в приложения C++ с помощью пакета MSIX с одним проектом. Visual Studio отображает ошибку, которую проект нельзя добавить в качестве ссылки, так как типы проектов несовместимы.

    • Ошибка при ссылке на пользовательский элемент управления в проекте библиотеки классов. Приложение завершит работу с ошибкой, которую система не может найти указанный путь.

    • Шаблон C# или C++ для Visual Studio 2019. При попытке создать проект вы увидите сообщение об ошибке "Проект не знает, как запустить имя проекта профиля". Чтобы устранить эту проблему, установите расширение средств упаковки MSIX с одним проектом.

    • Шаблон C# для Visual Studio 2019 и Visual Studio 2022. В Visual Studio при запуске отладки или запуска без отладки, если приложение не развертывает и не запускается (и нет отзывов из Visual Studio), а затем щелкните узел проекта в Обозреватель решений, чтобы выбрать его, и повторите попытку.

    • Шаблон C# для Visual Studio 2019 и Visual Studio 2022. При попытке запуска или отладки проекта на компьютере разработки возникает следующая ошибка: "Перед отладкой проекта необходимо развернуть проект. Включите развертывание в Configuration Manager". Чтобы устранить эту проблему, включите развертывание проекта в Configuration Manager. Подробные инструкции см. в статье "Создание первого проекта WinUI 3 (пакет SDK для приложений Windows).

    • Шаблон C++ для Visual Studio 2022 версии 17.0 до предварительной версии 4. При первом запуске проекта возникает следующая ошибка: "Произошли ошибки развертывания". Чтобы устранить эту проблему, запустите или разверните проект во второй раз. Эта проблема будет устранена в Visual Studio 2022 версии 17.0 ( предварительная версия 7).

  • Нет поддержки любой конфигурации сборки ЦП: при добавлении пакета SDK для приложений Windows к существующему приложению или компоненту .NET, поддерживающему любой ЦП, необходимо указать нужную архитектуру: x86x64 или arm64.

  • Проекты C# с версией 1.0 (предварительная версия 3) должны использовать следующий пакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. статью "Скачать . NET и .NET 5" 10 мая 2022 г.).

  • Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):

    1. Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
    2. Добавьте #include <wil/cppwinrt_helpers.h> в свой pch.h.
    3. Добавьте #include <winrt/Microsoft.UI.Dispatching.h> в свой pch.h.
    4. Теперь co_await wil::resume_foreground(your_dispatcherqueue);.

Важные проблемы, влияющие на предварительную версию 1.0 и предварительную версию 2

Версия 1.0 ( предварительная версия 1 и предварительная версия 2) пакета SDK для приложений Windows включает механизм очистки любых изменений переменных среды, внесенных упакованным приложением при удалении этого приложения. Эта функция находится в экспериментальном состоянии, и первый выпуск содержит известную ошибку, которая может повредить переменную среды system PATH .

Предварительная версия 1 и предварительная версия 2 повреждены любой переменной среды PATH , содержащей символ %расширения. Это происходит всякий раз, когда любое упаковаемое приложение удаляется независимо от того, использует ли это приложение пакет SDK для приложений Windows.

См. также проблему повреждения переменной среды PATH.

Сведения

Запись system PATH хранится в значении Path в следующем разделе реестра Windows:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

При запуске редактора реестра (), можно скопировать и вставить путь выше в панель навигации (regedit.exeнепосредственно под строкой меню) и нажать клавишу ВВОД, чтобы найти ключ.

Значение пути этого ключа должно иметь тип REG_EXPAND_SZ, но ошибка изменяет его на REG_SZ. И это делает системную переменную среды PATH непригодным для использования, если она содержит символ %расширения переменной.

Затронутые выпуски

Исправление

Чтобы вернуть компьютер в хорошее состояние, сделайте следующее:

  1. Проверьте, поврежден ли PATH в реестре и, если да, сбросьте его, выполнив приведенный ниже скрипт.

    Вы можете выполнить шаг 1 с помощью следующего скрипта Windows PowerShell (PowerShell Core не будет работать). Запустите его с повышенными привилегиями.

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # If the PATH in the Registry has been set to REG_SZ, then delete
    # it, and recreate it as REG_EXPAND_SZ.
    
    $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment'
    $Environment=Get-Item $EnvPath
    $PathKind = $Environment.GetValueKind('Path')
    
    if ($PathKind -ne 'ExpandString') {
      $Path = $Environment.GetValue('Path')
      Remove-ItemProperty $EnvPath -Name Path
      New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path
    }
    
  2. Удалите все приложения, использующие пакет SDK для приложений Windows 1.0 Preview1 или Preview2 (см. приведенный ниже сценарий).

  3. Удалите пакеты Пакета SDK для приложений Windows 1.0 Preview1/Preview2, включая пакет, содержащий ошибку (см. приведенный ниже сценарий).

    Вы можете выполнить шаги 2 и 3 с помощью следующего скрипта Windows PowerShell (PowerShell Core не будет работать). Запустите его с повышенными привилегиями.

    # This script must be run from an elevated Windows PowerShell
    # window (right-click Windows PowerShell in the Start menu,
    # and select Run as Administrator).
    
    # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it.
    
    $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*"
    Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage
    Get-AppxPackage $winappsdk | Remove-AppxPackage
    

Исправление в пакете SDK для приложений Windows 1.0 (предварительная версия 3)

Функция, из-за которой переменная среды PATH была повреждена, будет удалена в предстоящем выпуске пакета SDK для приложений Windows 1.0 (предварительная версия 3). Это может быть повторно введено в более позднюю дату, когда все ошибки были исправлены и тщательно проверены.

Рекомендуется использовать версию 1.0 ( предварительная версия 3).

Версия 1.0 preview 2 (1.0.0-preview2)

Внимание

Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 Preview 3 .

Это последний выпуск канала предварительной версии для версии 1.0. Она поддерживает все функции предварительного просмотра каналов.

В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.

WinUI 3 (1.0.0-preview2)

Новые обновления:

  • Элементы управления были обновлены, чтобы отразить последние стили Windows из WinUI 2.6.
  • Поддерживается msIX с одним проектом.
  • Пакет WinUI 3 теперь может целевой сборки 17763 и более поздних версий. Дополнительные сведения см . в статье #921 .
  • Панель инструментов в приложении поддерживается. Однако для панели инструментов в приложении и существующей поддержке Горячая перезагрузка/Динамического визуального дерева требуется предстоящий выпуск Visual Studio 17.0 Preview 5, доступный позже в октябре.

Исправлена ошибка: текст WebView2Runtime теперь локализован.

Дополнительные сведения или сведения о начале разработки с Помощью WinUI 3 см. в следующем разделе:

Окно (1.0.0-preview2)

В этом выпуске представлены обновления класса AppWindow . В этом выпуске отсутствуют основные новые функции, но в этом выпуске были удалены изменения в именах методов, свойствах и некоторых возвращаемых значениях. Подробные обновления см. в документации и примерах. Если вы работали с AppWindow в выпусках 1.0 Experimental или 1.0 Preview 1, ожидают некоторые изменения в коде.

Новые обновления:

  • Класс AppWindowConfiguration удален. Свойства этого класса теперь доступны в самом AppWindow или в классах докладчика .
  • Большинство bool возвращаемых значений для методов API WinRT в этом пространстве было удалено и теперь, void так как эти методы всегда будут успешными.
  • Вызовы ImportDll на C# больше не требуются для GetWindowIdFromWindow и GetWindowFromWindowId. Вместо этого используйте методы оболочки .NET, доступные в классе Microsoft.UI.Win32Interop.

Важные ограничения:

  • Пакет SDK для приложений Windows в настоящее время не предоставляет методы для присоединения содержимого платформы пользовательского интерфейса к AppWindow. Кроме того, можно использовать методы доступа hWND.
  • Настройка строки заголовка окна работает только в Windows 11. Используйте метод IsCustomizationSupported, чтобы проверка для поддержки функций настройки строки заголовка. Мы намерены уменьшить этот уровень функциональности.

Дополнительные сведения см. в разделе "Управление окнами приложений" (пакет SDK для приложений Для Windows).

Входные данные (1.0.0-preview2)

Новые обновления:

  • Улучшена поддержка точного ввода сенсорной панели.

Важные ограничения:

MRT Core (1.0.0-preview2)

Новые обновления:

  • Разработчики приложений теперь могут отказаться от индексирования файла образа или RESW-файла в файле PRI в проектах .NET. Дополнительные сведения см . в статье 980 .

Важные ограничения:

  • В проектах .NET файлы ресурсов, скопированные в папку проекта, не индексируются на F5, если приложение уже создано. В качестве обходного решения перестройте приложение. Дополнительные сведения см . в статье 1503 .
  • В проектах .NET существующие файлы ресурсов, добавленные из внешней папки, не индексируются без ручного задания действия сборки. Чтобы обойти эту проблему, задайте действие сборки в Visual Studio: содержимое для файлов изображений и PRIResource для RESW-файлов. Дополнительные сведения см. в статье 1504 .

Развертывание для распакованных приложений

Новые функции:

  • Пакет SDK для приложений Windows 1.0 (предварительная версия 2) представляет оболочку .NET для API загрузчика (см. раздел "Использование среды выполнения пакета SDK для приложений Windows", упакованных с внешним расположением или распаковкой). API начального загрузчика — это набор собственных функций C/C++, которые должны использовать для динамического использования пакета пакета sdk для приложений Windows во время выполнения. Оболочка .NET упрощает вызов API загрузчика из приложений .NET, включая приложения Windows Forms и WPF. Оболочка .NET для API загрузчика доступна в сборке Microsoft.WindowsAppRuntime.Bootstrap.Net.dll, которая является локальной для проекта приложения. Дополнительные сведения о оболочке .NET см . в библиотеке оболочки .NET.
  • Упакованные приложения теперь могут использовать API развертывания для получения основных и однотонных пакетов MSIX, установленных на компьютере. Основные и одноэлементные пакеты являются частью пакета платформы, установленного с приложением, но из-за ограничения модели приложений Windows упакованные приложения должны выполнить этот дополнительный шаг, чтобы установить эти пакеты. Дополнительные сведения о работе API развертывания см . в руководстве по развертыванию пакета SDK для приложений, зависящих от платформы.

Важные ограничения:

  • Оболочка .NET только для API начальной загрузки предназначена только для использования распакованными приложениями .NET для упрощения доступа к пакету SDK для приложений Windows.
  • Только упакованные приложения MSIX, которые являются полным доверием или имеют ограниченные возможности packageManagement , имеют разрешение на использование API развертывания для установки зависимостей основного и одноэлементного пакета. Поддержка упакованных приложений с частичным доверием будет поступать в последующих выпусках.
  • При тестировании приложения x86, использующего метод DeploymentManager.Initialize в системе x64, убедитесь, что платформа x64 сначала установлена, выполнив WindowsAppRuntimeInstall.exe. В противном случае возникнет ошибка NOT_FOUND из-за того, что Visual Studio не развертывает платформу x64, которая обычно возникает при развертывании или загрузке неопубликованного хранилища.

Жизненный цикл приложения

Большинство функций жизненного цикла приложений уже существуют на платформе UWP и были добавлены в пакет SDK для приложений Windows для использования типами классических приложений, особенно распакованы консольные приложения, приложения Win32, приложения Windows Forms и приложения WPF. Реализация пакета SDK для приложений Windows не может использоваться в приложениях UWP, так как в самой платформе UWP существуют эквивалентные функции.

Приложения, отличные от UWP, также могут быть упакованы в пакеты MSIX. Хотя эти приложения могут использовать некоторые функции жизненного цикла приложений пакета SDK для Windows, они должны использовать подход манифеста, где это доступно. Например, они не могут использовать API-интерфейсы RegisterForXXXXActivation пакета SDK для Приложений Windows и должны зарегистрировать для расширенной активации с помощью манифеста.

Все ограничения для упакованных приложений также применяются к приложениям WinUI 3, которые упаковываются; и существуют дополнительные рекомендации, как описано ниже.

Важные сведения:

  • Расширенная активация: GetActivatedEventArgs

  • Регистрация и отмена регистрации для расширенной активации

    • Распаковка приложений: полностью доступные для использования.
    • Упакованные приложения: вместо этого не используется манифест MSIX приложения.
    • Дополнительные сведения см. в разделе "Расширенные возможности активации" с помощью API жизненного цикла приложения.
  • Однократное или многоуровневое развертывание

    • Распаковка приложений: полностью доступные для использования.
    • Упакованные приложения: полностью доступные для использования.
    • Приложения WinUI 3. Если приложение хочет обнаружить другие экземпляры и перенаправить активацию, оно должно сделать это как можно раньше и перед инициализацией любых окон и т. д. Чтобы включить это, приложение должно определить DISABLE_XAML_GENERATED_MAIN и написать настраиваемый main (C#) или WinMain (C++), где он может выполнять обнаружение и перенаправление.
    • RedirectActivationToAsync — это асинхронный вызов, и вы не должны ожидать асинхронного вызова, если приложение работает в STA. Для приложений Windows Forms и C# WinUI 3 при необходимости можно объявить Main асинхронным. Для приложений WINUI 3 и C# WPF C++ нельзя объявить Main асинхронным, поэтому вместо этого необходимо переместить вызов перенаправления в другой поток, чтобы не блокировать sta.
    • Дополнительные сведения см. в разделе "Подключение приложений" с помощью API жизненного цикла приложения.
  • Уведомления о power/State

    • Распаковка приложений: полностью доступные для использования.
    • Упакованные приложения: полностью доступные для использования.
    • Дополнительные сведения см. в разделе "Управление питанием" с помощью API жизненного цикла приложения.

Известная проблема.

Сопоставления типов файлов неправильно кодируют %1 в %251 при настройке шаблона командной строки обработчика команд команды, который завершает работу распаковки приложений Win32. Вы можете вручную изменить значение реестра, чтобы он был %1 вместо этого в качестве частичного обходного решения. Если целевой путь к файлу имеет место в нем, он по-прежнему завершится ошибкой, и для этого сценария нет обходного решения.

Другие ограничения и известные проблемы:

  • Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 Preview 3 .

  • В этом выпуске представлены шаблоны пустых приложений, упакованных (WinUI 3 в desktop) для проектов C# и C++. Эти шаблоны позволяют создавать приложение в пакет MSIX без использования отдельного проекта упаковки. Эти шаблоны имеют некоторые известные проблемы в этом выпуске:

    • Шаблон C# для Visual Studio 2019. При попытке создать проект возникает ошибка: "Проект не знает, как запустить имя проекта профиля". Чтобы устранить эту проблему, установите расширение средств упаковки MSIX с одним проектом.

    • Шаблон C# для Visual Studio 2019 и Visual Studio 2022. При попытке запуска или отладки проекта на компьютере разработки возникает следующая ошибка: "Перед отладкой проекта необходимо развернуть проект. Включите развертывание в Configuration Manager". Чтобы устранить эту проблему, включите развертывание проекта в Configuration Manager. Подробные инструкции см. в статье "Создание первого проекта WinUI 3 (пакет SDK для приложений Windows).

    • Шаблон C++ для Visual Studio 2019 и Visual Studio 2022. В этом выпуске эти проекты ограничены вызовом подмножества API Win32, которые могут вызываться приложениями UWP. Пустое приложение, упаковаемое с помощью шаблона WAP (WinUI 3 в desktop), не влияет на эту проблему.

    • Шаблон C++ для Visual Studio 2022 версии 17.0 до предварительной версии 4. При первом запуске проекта возникает следующая ошибка: "Произошли ошибки развертывания". Чтобы устранить эту проблему, запустите или разверните проект во второй раз. Эта проблема будет исправлена в Visual Studio 2022 17.0 (предварительная версия 5).

  • API push-уведомлений (пространство имен Microsoft.Windows.PushNotifications) неправильно включены в выпуск 1.0 Preview 2. Это по-прежнему экспериментальная функция, и для ее использования необходимо установить экспериментальный выпуск версии 1.0. Эта функция будет удалена из предстоящего выпуска версии 1.0.

  • API жизненного цикла приложения (пространство имен Microsoft.Windows.AppLifecycle) неправильно включает экспериментальный атрибут в выпуске 1.0 Preview 2. Экспериментальный атрибут будет удален из этого API в следующем выпуске.

  • Нет поддержки любой конфигурации сборки ЦП: при добавлении пакета SDK для приложений Windows к существующему приложению или компоненту .NET, поддерживающему любой ЦП, необходимо указать нужную архитектуру: x86x64 или arm64.

  • Проекты C# с версией 1.0 (предварительная версия 2) должны использовать следующий пакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. статью "Скачать . NET и .NET 5" 10 мая 2022 г.).

  • Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):

    1. Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
    2. Добавьте #include <wil/cppwinrt_helpers.h> в свой pch.h.
    3. Добавьте #include <winrt/Microsoft.UI.Dispatching.h> в свой pch.h.
    4. Теперь co_await wil::resume_foreground(your_dispatcherqueue);.

Версия 1.0 Preview 1 (1.0.0-preview1)

Внимание

Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 Preview 3 .

Это первый выпуск канала предварительной версии для версии 1.0. Она поддерживает все функции предварительного просмотра каналов.

В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.

WinUI 3 (1.0.0-preview1)

Этот выпуск WinUI 3 ориентирован на создание до версии 1.0 с исправлениями ошибок.

  • Новые возможности: новые функции в предварительной версии 1 отсутствуют.
  • Исправлены проблемы: полный список проблем, которые устранены в этом выпуске, см . в репозитории GitHub.

Дополнительные сведения или сведения о начале разработки с Помощью WinUI 3 см. в следующем разделе:

Окно (1.0.0-preview1)

В этом выпуске API окон, который мы представили в экспериментальном 1, в состоянии предварительной версии. В этом выпуске нет основных новых возможностей, так как он ориентирован на исправления ошибок, стабильность и корректировки подписи API. Примечательными изменениями и дополнениями являются приведенные ниже.

Новые функции:

Важные ограничения:

  • В настоящее время этот выпуск AppWindow доступен только для приложений Win32 (упакованных и распакованных).
  • Пакет SDK для приложений Windows в настоящее время не предоставляет методы для присоединения содержимого платформы пользовательского интерфейса к AppWindow. Кроме того, можно использовать методы доступа hWND.
  • Настройка строки заголовка окна работает только в Windows 11. Используйте метод IsCustomizationSupported, чтобы проверка для поддержки функций настройки строки заголовка. Мы намерены уменьшить этот уровень функциональности.

Дополнительные сведения см. в разделе "Управление окнами приложений" (пакет SDK для приложений Для Windows).

Входные данные (1.0.0-preview1)

В этом выпуске представлены некоторые новые функции в API ввода. Примечательными изменениями и дополнениями являются приведенные ниже.

Новые функции и обновления:

  • PointerPredictor позволяет приложениям с учетом задержки ввода, таким приложениям рукописного ввода, прогнозировать расположения точек ввода до 15 мс в будущем, чтобы добиться лучшей задержки и плавной анимации.
  • PenDeviceInterop позволяет получить ссылку на Windows.Devices.Input.PenDevice с помощью метода FromPointerPoint .
  • InputCursor обеспечивает явное различие между предустановленными системными типами курсоров и пользовательскими типами курсоров, удаляя тип Custom, представленный в CoreCursor, и разделяя CoreCursor объект на отдельные объекты.
  • ОбновленияAPI-интерфейсы InputCursor.
  • ЖестRecognizer перемещен из экспериментального объекта в Microsoft.UI.Input.
  • PointerPoint перемещен из экспериментального объекта в Microsoft.UI.Input.
  • Ввод мыши, касания и пера полностью поддерживается для перетаскивания и перетаскивания WinUI 3.

Важные ограничения:

  • Этот выпуск ИНТЕРФЕЙСов API ввода имеет известные проблемы с Windows версии 1809.
  • MRT Core пока не поддерживается любым подтипом InputCursor.
  • Прямое использование API пакета SDK платформы Windows.UI.CoreDragOperation не будет работать с приложениями WinUI 3.
  • Свойства PointerPoint RawPosition и ContactRectRaw были удалены, так как они ссылались на непрогнозируемые значения, которые совпадали с обычными значениями в ОС. Вместо этого используйте Position и ContactRect . Прогнозирование указателя теперь обрабатывается с помощью объекта API Microsoft.UI.Input.PointerPredictor.

MRT Core (1.0.0-preview1)

Начиная с версии 1.0 (предварительная версия 1), API-интерфейсы MRT Core перемещены из пространства имен Microsoft.ApplicationModel.Resources в пространство имен Microsoft.Windows.ApplicationModel.Resources.

Другие ограничения и известные проблемы:

  • Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 Preview 3 .

  • Проекты, созданные с помощью пустого приложения C++, упакованные с шаблоном проекта WAP (WinUI 3 в desktop), по умолчанию сталкиваются со следующей ошибкой сборки: fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory Чтобы устранить эту проблему, удалите следующую строку кода из pch.h-файла . Эта проблема будет устранена в следующем выпуске.

    #include <winrt/microsoft.ui.dispatching.co_await.h>
    
  • Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):

    1. Добавьте ссылку на проект в пакет NuGet Microsoft.Windows.ImplementationLibrary .
    2. Добавьте #include <wil/cppwinrt_helpers.h> в свой pch.h.
    3. Добавьте #include <winrt/Microsoft.UI.Dispatching.h> в свой pch.h.
    4. Теперь co_await wil::resume_foreground(your_dispatcherqueue);.
  • Нет поддержки любой конфигурации сборки ЦП: пакет SDK для приложений Windows написан в машинном коде и поэтому не поддерживает конфигурации сборки ЦП . Шаблоны WinUI 3 в Visual Studio разрешают только сборки, относящиеся к архитектуре. При добавлении пакета SDK для приложений Windows в существующее приложение или компонент .NET, поддерживающее любой ЦП, необходимо указать нужную архитектуру: x86x64 или arm64.

  • Приложения .NET должны быть предназначены для сборки 18362 или более поздней версии: TFM должен иметь или более поздней версии, а проект <TargetPlatformVersion> упаковки должен иметь net6.0-windows10.0.18362 значение 18362 или более поздней версии. Дополнительные сведения см. в статье об известной проблеме на сайте GitHub.

  • Проекты C# с версией 1.0 (предварительная версия 1) должны использовать следующий пакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. статью "Скачать . NET и .NET 5" 10 мая 2022 г.).

  • Неупакованные приложения не поддерживаются в Windows 10 версии 1809: это необходимо устранить в следующем выпуске.