Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Канал предварительной версии не поддерживается для использования в рабочих средах, а приложения, использующие предварительные версии, не могут быть опубликованы в Microsoft Store.
Канал предварительной версии включает выпуски пакета SDK для приложений Windows с функциями предварительной версии канала на поздних этапах разработки. Предварительные версии не включают экспериментальные функции и API, но могут по-прежнему подвергаться критическим изменениям до следующего стабильного выпуска.
Важные ссылки:
- Если вы хотите обновить существующее приложение с более старой версии пакета SDK для приложений Windows до более новой версии, ознакомьтесь с обновлением существующих проектов до последнего выпуска пакета SDK для приложений Windows.
- Документацию по предварительным выпускам см. в разделе «Средства установки для предварительных и экспериментальных каналов Windows App SDK».
Последний релиз канала предварительного просмотра:
Последняя версия стабильного канала:
Версия 1.0 Preview 3 (1.0.0-preview3)
Предварительная версия 3 — это последний выпуск канала предварительной версии для пакета SDK для приложений Windows версии 1.0. Предварительная версия 3 поддерживает все функции канала предварительной версии .
Загрузите расширения Visual Studio версии 1.0 Предварительная версия 3 (VSIX)
Замечание
Если у вас уже установлены расширения Visual Studio для пакета SDK для Приложений Windows (VSIX), удалите их перед установкой новой версии. Инструкции см. в разделе "Управление расширениями для Visual Studio".
В таблице ниже можно скачать расширения Visual Studio (VSIX) для выпуска 1.0 ( предварительная версия 3). Для всех версий см. последние загрузки пакета SDK для приложений Windows. Если вы ещё этого не сделали, начните с настройки среды разработки, следуя шагам в Установка инструментов для Windows App SDK.
Приведенные ниже расширения предназначены для языка программирования и версии Visual Studio.
предварительная версия 1.0, загрузка для версии 3 | Описание |
---|---|
Расширение для C# в Visual Studio 2019 | Создайте приложения C# с расширением Visual Studio 2019 для пакета SDK для приложений Windows. |
расширение C++ для Visual Studio 2019 | Создание приложений C++ с помощью расширения Visual Studio 2019 для пакета SDK для приложений Windows. |
Расширение для Visual Studio 2022 C# | Создание приложений C# с помощью расширения Visual Studio 2022 для пакета SDK для приложений Windows. |
расширение C++ для Visual Studio 2022 | Создайте приложения C++ с расширением Visual Studio 2022 пакета SDK для приложений Windows. |
установщик .exe и пакеты MSIX |
Разверните пакет SDK для приложений Windows с помощью установщика .exe и пакетов MSIX. |
В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для версии 1.0 ( предварительная версия 3).
WinUI 3 (1.0.0-предварительная версия3)
Теперь мы поддерживаем развертывание приложений WinUI 3 без упаковки MSIX. Для настройки приложения WinUI 3 для поддержки развертывания без использования пакета, см. статью Создание первого проекта WinUI 3 (Windows App SDK).
Важные ограничения:
- Непакованные приложения WinUI 3 поддерживаются только в Windows версии 1909 и более поздних версий.
- Приложения WinUI 3 без упаковки поддерживаются на x86 и x64; поддержка arm64 будет добавлена в следующем стабильном выпуске.
- Однопроектные средства упаковки MSIX для Visual Studio 2019 или Visual Studio 2022 необходимы для неупакованных приложений.
- В распаковке приложения может появиться запрос на установку .NET 3.5; Если вы это делаете, то его можно игнорировать.
- Некоторые API в настоящее время не поддерживаются в распакованных приложениях. Мы стремимся исправить это в следующем стабильном выпуске. Несколько примеров:
- ДанныеПриложения
- StorageFile.GetFileFromApplicationUriAsync (получение файла из Uri приложения асинхронно)
- ApiInformation (не поддерживается в Windows 10)
- Пакет.Текущий
- Элементы управления ListView, CalendarView и GridView используют неправильные стили, и мы стремимся исправить это в следующем стабильном выпуске.
Чтобы узнать больше или начать разработку с помощью WinUI 3, см. следующую информацию:
Другие ограничения и известные проблемы:
Не упакованные приложения не поддерживаются в Windows 10 версии 1809. Мы стремимся исправить это в следующем выпуске в стабильном канале.
приложение MSIX на C# в рамках одного проекта не компилируется, если средства UWP для C++ не установлены. Если у вас есть однопроектный проект MSIX для C#, необходимо установить необязательный компонент C++ (v14x) Средства универсальной платформы Windows.
В этом выпуске представлены пустое приложение, упакованное (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 Packaging Tools для одиночного проекта. шаблон 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).
Нет поддержки конфигурации сборки Any CPU. При добавлении Windows App SDK в существующее приложение или компонент .NET, поддерживающее Any CPU, необходимо указать нужную архитектуру:
x86
,x64
илиarm64
.проекты C# с помощью Предварительной версии 3 версии 1.0 обязаны использовать следующийпакет SDK для .NET: пакет SDK для .NET 6 или более поздней версии (см. скачивание .NET и .NET 5 достигнет окончания поддержки 10 мая 2022 г.).
Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):
- Добавьте ссылку на пакет Microsoft.Windows.ImplementationLibrary NuGet в ваш проект.
- Добавьте
#include <wil/cppwinrt_helpers.h>
вpch.h
. - Добавьте
#include <winrt/Microsoft.UI.Dispatching.h>
вpch.h
. - Теперь
co_await wil::resume_foreground(your_dispatcherqueue);
.
Важные проблемы, влияющие на предварительную версию 1.0 и предварительную версию 2
Версия 1.0 ( предварительная версия 1 и предварительная версия 2) пакета SDK для приложений Windows включает механизм очистки любых изменений переменных среды, внесенных упакованным приложением при удалении этого приложения. Эта функция находится в экспериментальном состоянии, и первый выпуск содержит известную ошибку, которая может повредить системную PATH переменной среды.
Предварительная версия 1 и предварительная версия 2 повреждает любую переменную среды PATH, содержащую символ расширения %
. Это происходит всякий раз, когда любое упаковаемое приложение удаляется независимо от того, использует ли это приложение пакет SDK для приложений Windows.
Также см. проблему с повреждением переменной окружения PATH.
Сведения
Запись system
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Если вы запустите редактор реестра (regedit.exe
), то можно скопировать и вставить указанный выше путь в строку пути (непосредственно под строкой меню) и нажать клавишу Enter, чтобы найти ключ.
Значение пути %
.
Затронутые выпуски
- пакет SDK для приложений Windows 1.0 (предварительная версия 1.0.0-preview1)
- пакет SDK для приложений Windows 1.0(предварительная версия 2) (1.0.0-preview2)
Смягчение последствий
Чтобы вернуть компьютер в хорошее состояние, сделайте следующее:
Проверьте, поврежден ли путь 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 }
Удалите все приложения, использующие пакет SDK для приложений Windows 1.0 Preview1 или Preview2 (см. приведенный ниже сценарий).
Удалите пакеты Пакета 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 повреждается, будет удалена в предстоящем выпуске Windows App SDK 1.0 Preview 3. Это может быть повторно введено в более позднюю дату, когда все ошибки были исправлены и тщательно проверены.
Мы рекомендуем использовать версию 1.0 preview 3.
Версия 1.0 preview 2 (1.0.0-preview2)
Это важно
Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 предварительная версия 3.
Это последний выпуск канала предварительной версии для версии 1.0. Она поддерживает все функции предварительного канала .
В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.
WinUI 3 (1.0.0-предварительная версия2)
новые обновления:
- Элементы управления были обновлены, чтобы соответствовать последним дизайнерским стилям 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 или в классах Presenter .
- Большинство
bool
возвращаемых значений для методов API WinRT в этом пространстве были удалены и сталиvoid
, поскольку эти методы всегда выполнялись успешно. - Вызовы ImportDll на C# больше не требуются для GetWindowIdFromWindow и GetWindowFromWindowId. Используйте методы оболочки .NET, доступные в классе Microsoft.UI.Win32Interop.
Важные ограничения:
- Пакет SDK для приложений Windows в настоящее время не предоставляет методы для присоединения содержимого UI-фреймворка к AppWindow; Вы ограничены использованием HWND интерактивных методов доступа.
- Настройка строки заголовка окна работает только в Windows 11. Используйте метод IsCustomizationSupported для проверки поддержки функций настройки строки заголовка. Мы намерены уменьшить этот уровень функциональности.
Дополнительные сведения см. в разделе "Управление окнами приложений" (пакет SDK для приложений Для Windows).
Входные данные (1.0.0-preview2)
новые обновления:
- Улучшена поддержка точного ввода тачпадов.
Важные ограничения:
- Все статические фабричные функции PointerPoint удалены: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePointsи GetIntermediatePointsTransformed.
- Пакет SDK для приложений Windows не поддерживает получение объектов PointerPoint с идентификаторами указателей. Вместо этого можно пользоваться функцией-членом PointerPointGetTransformedPoint, чтобы получить преобразованную версию существующего объекта PointerPoint. Для работы с промежуточными точками можно использовать функции-члены PointerEventArgs: GetIntermediatePoints и GetTransformedIntermediatePoints. Дополнительные сведения см. в документации.
MRT Core (1.0.0-предварительная версия2)
новые обновления:
- Разработчики приложений теперь могут отказаться от индексирования файла образа или RESW-файла в файле PRI в проектах .NET. Дополнительные сведения см. в выпуске 980.
Важные ограничения:
- В проектах .NET файлы ресурсов, скопированные в папку проекта, не индексируются на F5, если приложение уже создано. В качестве обходного решения перестройте приложение. Дополнительные сведения см. в выпуске 1503].
- В проектах .NET существующие файлы ресурсов, добавленные из внешней папки, не индексируются без ручного задания действия сборки. Чтобы обойти эту проблему, задайте действие сборки в Visual Studio: содержимое для файлов изображений и PRIResource для файлов RESW. Дополнительные сведения см. в проблемы 1504.
Развертывание для распакованных приложений
новые функции:
- Пакет SDK для приложений Windows версии 1.0 (предварительная версия 2.0) представляет оболочку .NET для API загрузчика (см. Использование среды выполнения пакета SDK для приложений Windows, упакованных с внешним размещением или без упаковки). Начальный загрузчик API — это набор встроенных функций на C/C++, которые необходимо использовать неупакованным приложениям для динамического подключения к пакету платформы Windows App SDK во время выполнения. Оболочка .NET упрощает вызов API загрузчика из приложений .NET, включая приложения Windows Forms и WPF. Оболочка .NET для API загрузчика доступна в сборке Microsoft.WindowsAppRuntime.Bootstrap.Net.dll, которая является локальной для проекта приложения. Дополнительные сведения о оболочке .NET см. в библиотеке оболочки .NET.
- Упакованные приложения теперь могут использовать API развертывания для получения основных и одиночных пакетов MSIX, установленных на устройстве. Основные и одноэлементные пакеты являются частью пакета платформы, установленного с приложением, но из-за ограничения модели приложений Windows упакованные приложения должны выполнить этот дополнительный шаг, чтобы установить эти пакеты. Дополнительные сведения о том, как работает API развертывания, см. в руководстве по развертыванию пакета SDK для Windows для приложений, зависящих от фреймворка, .
Важные ограничения:
- Оболочка .NET для API начальной загрузки предназначена только для использования распакованными приложениями .NET, чтобы упростить доступ к Windows App SDK.
- Только приложения MSIX, упакованные с полным уровнем доверия или имеющие ограниченную функциональность packageManagement, обладают разрешением использовать API развертывания для установки основных зависимостей и зависимостей одиночных пакетов. Поддержка упакованных приложений с частичным доверием появится в будущих версиях.
- При проведении тестирования F5 приложения x86, использующего метод DeploymentManager.Initialize на системе x64, убедитесь, что сначала установлена платформа x64, выполнив WindowsAppRuntimeInstall.exe. В противном случае возникнет ошибка NOT_FOUND из-за того, что Visual Studio не развертывает платформу x64, что обычно происходит через развертывание в магазине или путем загрузки вручную.
Жизненный цикл приложения
Большинство функций жизненного цикла приложения уже существуют на платформе UWP и были включены в Windows App SDK для использования различными типами классических приложений, куда входят неупакованные консольные приложения, приложения Win32, приложения Windows Forms и приложения WPF. Реализация пакета SDK для приложений Windows не может использоваться в приложениях UWP, так как в самой платформе UWP существуют эквивалентные функции.
Приложения, отличные от UWP, также могут быть упакованы в пакеты MSIX. Хотя эти приложения могут использовать некоторые функции жизненного цикла приложений пакета SDK для Windows, они должны использовать подход манифеста, где это доступно. Например, они не могут использовать Windows App SDK RegisterForXXXActivation API и вместо этого должны зарегистрироваться для расширенной активации с помощью манифеста.
Все ограничения для упакованных приложений также применяются к приложениям WinUI 3, которые упаковываются; и существуют дополнительные рекомендации, как описано ниже.
Важные вопросы:
Расширенная активация: GetActivatedEventArgs
- нераспакованные приложения: полностью пригодны для использования.
-
Упакованные приложения: пригодны для использования, но эти приложения также могут использовать платформу
GetActivatedEventArgs
. Обратите внимание, что платформа определяет Windows.ApplicationModel.AppInstance, а пакет SDK для приложений Windows определяет Microsoft.Windows.AppLifecycle.AppInstance. И хотя приложения UWP могут использовать классыActivatedEventArgs
, такие какFileActivatedEventArgs
иLaunchActivatedEventArgs
, приложения, использующие функцию AppLifecycle из Windows App SDK, должны использовать интерфейсы, а не классы (например,IFileActivatedEventArgs
,ILaunchActivatedEventArgs
и тому подобное). -
приложения WinUI 3: для метода App.OnLaunched в WinUI 3 предоставляется объект Microsoft.UI.Xaml.LaunchActivatedEventArgs, в то время как платформа
GetActivatedEventArgs
возвращает объект Windows.ApplicationModel.IActivatedEventArgs, а WindowsAppSDKGetActivatedEventArgs
возвращает объект Microsoft.Windows.AppLifecycle.AppActivationArguments, который может представлять платформуLaunchActivatedEventArgs
. - Дополнительные сведения см. в разделе "Расширенные возможности активации" с помощью API жизненного цикла приложения.
Регистрация и отмена регистрации для расширенной активации
- нераспакованные приложения: полностью пригодны для использования.
- Упакованные приложения: неподходящи, используйте манифест MSIX приложения вместо этого.
- Дополнительные сведения см. в разделе "Расширенные возможности активации" с помощью API жизненного цикла приложения.
Однократное или многоуровневое развертывание
- нераспакованные приложения: полностью пригодны для использования.
- упакованные приложения: полностью пригодные к использованию.
- приложения WinUI 3: если приложение хочет обнаружить другие экземпляры и перенаправить активацию, это необходимо сделать как можно раньше и перед инициализацией окон и т. д. Чтобы включить это, приложение должно определить DISABLE_XAML_GENERATED_MAIN и написать настраиваемый main (C#) или WinMain (C++), где он может выполнять обнаружение и перенаправление.
- RedirectActivationToAsync является асинхронным вызовом, и не следует ожидать асинхронного вызова, если приложение работает в STA. Для приложений Windows Forms и C# WinUI 3 при необходимости можно объявить Main асинхронным. Для приложений C++ WinUI 3 и C# WPF нельзя объявить Main асинхронным, поэтому нужно переместить вызов перенаправления в другой поток, чтобы не блокировать STA.
- Дополнительные сведения см. в разделе инстанцирование приложений с помощью API жизненного цикла приложений.
Уведомления о питании/состоянии системы
- нераспакованные приложения: полностью пригодны для использования.
- упакованные приложения: полностью пригодные к использованию.
- Дополнительные сведения см. в разделе "Управление питанием" с помощью API жизненного цикла приложения.
Известная проблема.
Сопоставления типов файлов неправильно кодируют %1 как %251 при настройке шаблона командной строки обработчика Verb, что приводит к сбоям в работе неупакованных приложений Win32. Можно вручную изменить значение реестра на %1 в качестве частичного обходного решения. Если в целевом пути к файлу имеется пробел, это по-прежнему приведет к ошибке, и для этой ситуации нет никакого обходного решения.
Другие ограничения и известные проблемы:
Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 предварительная версия 3.
В этом выпуске представлены шаблоны для проектов C# и C++: Blank App, Packaged (WinUI 3 в Desktop). Эти шаблоны позволяют упаковать ваше приложение в пакет MSIX без использования отдельного проекта по упаковке. Эти шаблоны имеют некоторые известные проблемы в этом выпуске:
Шаблон C# для Visual Studio 2019. При попытке сборки проекта возникает ошибка: "Проект не знает, как запустить профиль с именем проекта". Чтобы устранить эту проблему, установите расширение MSIX Packaging Tools для одиночного проекта.
Шаблон 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 в классическом режиме), не подвержено этой проблеме.
Шаблон 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 в следующем выпуске.
Нет поддержки конфигурации сборки Any CPU. При добавлении Windows App SDK в существующее приложение или компонент .NET, поддерживающее Any CPU, необходимо указать нужную архитектуру:
x86
,x64
илиarm64
.проекты на C# с версией 1.0 (предварительная версия 2) должны использовать следующийSDK для .NET: SDK для .NET 6 или более поздней версии (см. загрузку .NET и поддержка .NET 5 закончится 10 мая 2022 г.).
Альтернативой DispatcherQueue.TryEnqueue (для возобновления выполнения в потоке очереди диспетчера) является использование вспомогательной функции resume_foreground в библиотеке реализации Windows (WIL):
- Добавьте ссылку на пакет Microsoft.Windows.ImplementationLibrary NuGet в ваш проект.
- Добавьте
#include <wil/cppwinrt_helpers.h>
вpch.h
. - Добавьте
#include <winrt/Microsoft.UI.Dispatching.h>
вpch.h
. - Теперь
co_await wil::resume_foreground(your_dispatcherqueue);
.
Версия 1.0 Preview 1 (1.0.0-preview1)
Это важно
Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 предварительная версия 3.
Это первый релиз предварительного канала для версии 1.0. Она поддерживает все функции предварительного канала .
В следующих разделах описываются новые и обновленные функции, ограничения и известные проблемы для этого выпуска.
WinUI 3 (1.0.0-предварительная версия1)
Этот выпуск WinUI 3 ориентирован на подготовку версии 1.0 с исправлениями ошибок.
- новые функции: новые функции в предварительной версии 1 отсутствуют.
- Исправлены проблемы. Полный список проблем, решенных в этом выпуске, см. в нашем репозитории GitHub .
Для получения дополнительной информации или чтобы начать разработку с помощью WinUI 3, см. в разделе:
Окно (1.0.0-preview1)
В этом выпуске API оконного интерфейса, который мы представили в экспериментальной версии 1, переведён в стадию предварительной версии. В этом выпуске нет основных новых возможностей, так как он ориентирован на исправления ошибок, стабильность и корректировки подписи API. Изменения и дополнения, заслуживающие внимания, перечислены ниже.
новые функции:
- DisplayAreaWatcher добавлен в API для управления окнами. Это позволяет разработчику наблюдать за изменениями в топологии отображения и перечислять "DisplayAreas", которые в данный момент определены в системе.
- AppWindow теперь поддерживает настройку значка окна с помощью метода SetIcon, а AppWindowTitleBar теперь поддерживает выбор того, следует ли отображать и скрывать значок окна вместе с системным меню через свойство IconShowOptions.
Важные ограничения:
- Этот выпуск AppWindow в настоящее время доступен только для приложений Win32 (упакованных и распакованных).
- Пакет SDK для приложений Windows в настоящее время не предоставляет методы для присоединения содержимого UI-фреймворка к 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.
- GestureRecognizer перемещён из экспериментального режима в Microsoft.UI.Input.
- PointerPoint вышли из экспериментального режима в Microsoft.UI.Input.
- Поддержка ввода мышью, касанием и пером полностью реализована для функции перетаскивания и сброса в WinUI 3.
Важные ограничения:
- Этот выпуск интерфейсов API ввода имеет известные проблемы с Windows версии 1809.
- MRT Core пока не поддерживается ни одним подтипом InputCursor.
- Прямое использование API пакета SDK платформы Windows.UI.Core.CoreDragOperation не будет работать с приложениями WinUI 3.
- Свойства PointerPoint RawPosition и ContactRectRaw были удалены, так как они ссылались на непрогнозируемые значения, которые совпадали с обычными значениями в ОС. Используйте позицию и ContactRect. Прогнозирование указателя теперь обрабатывается с помощью объекта API Microsoft.UI.Input.PointerPredictor.
MRT Core (1.0.0-предварительная версия1)
Начиная с версии 1.0(предварительная версия 1), API-интерфейсы MRT Core перемещены из пространства имен Microsoft.ApplicationModel.Resources в пространство имен Microsoft.Windows.ApplicationModel.Resources.
Другие ограничения и известные проблемы:
Версия 1.0( предварительная версия 1 и предварительная версия 2) содержит критически важную ошибку. Если вы уже установили одну из этих предварительных версий, узнайте , как устранить проблему. Вместо этого рекомендуется использовать версию 1.0 предварительная версия 3.
Проекты, созданные с использованием шаблона проекта Blank App на C++, упакованные с помощью WAP (WinUI 3 в классическом приложении), по умолчанию сталкиваются со следующей ошибкой сборки:
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):
- Добавьте ссылку на пакет Microsoft.Windows.ImplementationLibrary NuGet в ваш проект.
- Добавьте
#include <wil/cppwinrt_helpers.h>
вpch.h
. - Добавьте
#include <winrt/Microsoft.UI.Dispatching.h>
вpch.h
. - Теперь
co_await wil::resume_foreground(your_dispatcherqueue);
.
Нет поддержки конфигурации сборки ЦП: пакет SDK для приложений Windows написан в машинном коде и поэтому не поддерживает конфигурации сборки ЦП. Шаблоны WinUI 3 в Visual Studio разрешают только сборки для конкретных архитектур. При добавлении Windows App SDK в существующее приложение или компонент .NET, поддерживающий любойЦП, необходимо указать требуемую архитектуру:
x86
,x64
илиarm64
.приложения .NET должны быть предназначены для сборки 18362 или более поздней версии: для TFM необходимо задать значение
net6.0-windows10.0.18362
или более поздней версии, а<TargetPlatformVersion>
проекта упаковки должен иметь значение 18362 или более поздней версии. Для получения дополнительной информации смотрите известную проблему на GitHub.проекты C#, использующие версию 1.0 (предварительная версия 1), должны использовать следующийSDK для .NET: SDK для .NET 6 или более поздней версии (см. скачивание .NET и .NET 5 перестанет поддерживаться 10 мая 2022 г.).
Неупакованные приложения не поддерживаются в Windows 10 версии 1809: Это должно быть решено в следующем выпуске.
Связанные темы
- Последние заметки о выпуске стабильного канала для пакета SDK для приложений Windows
- Последние заметки о выпуске экспериментального канала для пакета SDK для приложений Windows
- Установка инструментов для Windows App SDK
- Создание первого проекта WinUI 3 (пакет SDK для приложений Windows)
- Использование пакета SDK для приложений Windows в существующем проекте
- Общие сведения о развертывании
Windows developer