Заметки о выпуске стабильного канала для пакета SDK для приложений Windows 1.2
Стабильный канал предоставляет выпуски пакета SDK для приложений Windows, которые поддерживаются приложениями в рабочих средах. Приложения, использующие стабильный выпуск пакета SDK для приложений Windows, также можно опубликовать в Microsoft Store.
Важные ссылки:
- Если вы хотите обновить существующее приложение с более старой версии пакета SDK для приложений Windows до более новой версии, ознакомьтесь с обновлением существующих проектов до последнего выпуска пакета SDK для приложений Windows.
Последний выпуск стабильного канала:
Скачиваемые файлы пакета SDK для приложений для Windows
Примечание.
Расширения Visual Studio для пакета SDK для приложений Windows (VSIX) больше не распределяются в виде отдельной загрузки. Они доступны в Visual Studio Marketplace в Visual Studio.
Версия 1.2.5 (1.2.230313.1)
Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.2.
- Исправлена проблема, из-за которой приложения завершались сбоем во время завершения работы композиции.
- Исправлена проблема, из-за которой приложения продолжают работать анимации даже при отключении экрана.
- Устранена проблема, из-за которой ввод мыши и сенсорного ввода не удалось выполнить в WebView2 при одновременном вводе мыши и клавиатуры. Дополнительные сведения см. в статье о проблеме GitHub #3266.
Версия 1.2.4 (1.2.230217.4)
Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.2.
- Исправлена проблема, из-за которой автономные приложения не могли задавать параметры UAC. Дополнительные сведения см. в статье о проблеме GitHub #3376.
- Исправлена проблема, из-за которой push-уведомления возвращали неточное время окончания срока
PushNotificationChannel::ExpirationTime
действия. Дополнительные сведения см. в статье о проблеме GitHub #3300. - Исправлена проблема, из-за которой отрицательные числа считались недопустимыми при передаче двойника в функцию x:Bind.
- Несколько исправлений для обновления VSIX WinUI. Эти обновления включали упрощение шаблона проекта в app.manifest, удаление шаблонов UWP, обновление локализованных файлов ресурсов, добавление идентификатора телефона для разблокировки отправки магазина и удаление уведомления об авторских правах и лицензии. Дополнительные сведения см. в статье о проблемах GitHub #5659, #3205, #3323, #3322, #3143.
Версия 1.2.3 (1.2.230118.102)
Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.2.
- Исправлена проблема, из-за которой приложения WinUI 3 завершались сбоем при закрытии нескольких окон.
- Исправлена проблема, из-за которой произошел сбой при закрытии приложения при вызове двух или более ссылок на интерфейс ThreadPoolTimer. Дополнительные сведения см. в статье о проблемах GitHub #7260 и #7239.
- Исправлена проблема, из-за которой все приложения MSIX с одним проектом запускались в качестве полного доверия. Дополнительные сведения см. в статье о проблеме GitHub #7766.
Версия 1.2.2 (1.2.221209.1)
Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.2.
- Исправлена проблема, из-за которой не удалось установить пакеты Магазина и загрузки на стороне (например, от установщика, NuGet и начального загрузчика). Дополнительные сведения см. в статье о проблеме GitHub #3168.
- Исправлена проблема, из-за которой отсутствуют эффекты эластичности и кривые анимации при прокрутке с помощью сенсорной панели. Дополнительные сведения см. в статье о проблеме GitHub #7874.
- Исправлена проблема в ListView, из-за которой произошла утечка памяти.
- Исправлена проблема, из-за которой шаблон Button не уважал свойство Переднего плана после наведения указателя мыши. Дополнительные сведения см. в статье о проблеме GitHub #7208.
- Исправлена проблема, из-за которой ненуждалось исключение, если в MediaElement отсутствует MediaPlaybackItem.
- Исправлена проблема, из-за которой белый кадр отображалась в MediaPlayerElement при переходе содержимого.
- Исправлены дополнительные проблемы, из-за чего App.UnhandledException не перехватывать исключения из других потоков. Дополнительные сведения см. в статье о проблемах GitHub #1259 и #5221.
Версия 1.2.1 (1.2.221116.1)
Это выпуск пакета SDK для приложений Windows, содержащий критическое исправление ошибки для выпуска 1.2.
Исправлена проблема, из-за которой произошел сбой при запуске в приложениях WinUI 3 C++ при добавлении элемента управления WebView2 или TextBox. Дополнительные сведения см. в статье о проблемах GitHub #7911 и #3117.
новые и обновленные функции и известные проблемы для версии 1.2
В следующих разделах описываются новые и обновленные функции и известные проблемы для версии 1.2.
Примечание.
Visual Studio 2019 и .NET 5 больше не поддерживаются для создания приложений C# (см. пакет SDK для приложений Windows 1.2, переход на C# WinRT 2.0). Вам потребуется Visual Studio 2022 и одна из следующих версий пакета SDK для .NET: 6.0.401 (или более поздней версии), 6.0.304, 6.0.109. При выпуске WinAppSDK 1.2 также будет поддерживать .NET 7.
Чтобы обновить версию пакета SDK для .NET, установите последнюю версию Visual Studio 2022 или посетите скачиваемых файлов .NET. При обновлении пакета NuGet без требуемой версии пакета SDK для .NET появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется .NET 6+ и WinRT.Runtime.dll версии 2.0 или более поздней." Чтобы обновить проект от .NET 5.0 до .NET 6.0, откройте файл проекта и измените "TargetFramework" на "Целевая версия ОС" net6.0
на соответствующее значение (например net6.0-windows10.0.19041.0
).
Сторонние мини-приложения в Windows
Доска мини-приложений впервые появилась в Windows 11 и была ограничена отображением встроенных мини-приложений. Мини-приложения — это небольшие контейнеры пользовательского интерфейса, которые отображают текст и графику на доске мини-приложений и связаны с приложением, установленным на устройстве. С помощью пакета SDK для приложений Windows в качестве сторонних разработчиков теперь можно создавать мини-приложения для упакованных приложений Win32 и тестировать их локально на доске мини-приложений Windows 11.
Дополнительные сведения о мини-приложениях см. в обзоре мини-приложений.
Чтобы приступить к разработке мини-приложений для приложения, ознакомьтесь с документацией по разработке поставщиков служб мини-приложений и основами разработки мини-приложений для предварительных требований, рекомендаций и рекомендаций.
Необходимые условия для этого выпуска:
- Режим разработчика включен на компьютере разработки.
- Компьютер разработки работает с версией Windows с версии 521.20060.1205.0 или более поздней версии с версией 521.20060.1205.0 или более поздней.
Известные ограничения при разработке мини-приложений:
- Сторонние мини-приложения можно протестировать только локально на устройствах, зарегистрированных в WIP для этого предварительного выпуска.
- Мини-приложения можно создавать только для упакованных приложений Win32. Мини-приложения для прогрессивных веб-приложения (PWA) планируется поддерживать в составе Microsoft Edge 108.
DisplayInformation
Классические приложения Windows теперь могут поддерживать высокий динамический диапазон (HDR) и автоматическое управление цветами (ACM) через класс DisplayInformation в WinAppSDK. Класс DisplayInformation позволяет отслеживать сведения, связанные с отображением, для представления приложения. К ним относятся события, позволяющие клиентам отслеживать изменения в представлении приложения, влияющие на отображение, в котором находится представление, а также изменения в дисплеях, которые могут повлиять на представление приложения.
WinUI 3
Приложения WinUI 3 могут воспроизводить звук и видео с помощью элементов управления воспроизведением мультимедиа MediaPlayerElement и MediaTransportControls. Дополнительные сведения о том, как и когда использовать элементы управления мультимедиа, см. в разделе "Проигрыватели мультимедиа".
WinUI 3 обновлен с помощью последних элементов управления, стилей и поведения из WinUI 2.8. К этим обновлениям относятся добавление элемента управления InfoBadge , улучшения специальных возможностей и режима высокой контрастности, а также исправления ошибок в элементах управления. Дополнительные сведения см. в заметках о выпуске WinUI 2.7 и WinUI 2.8.
Исправленные проблемы:
- Акриловый фоновый материал с DesktopAcrylicController теперь поддерживается в приложениях Windows 10. Дополнительные сведения см. в выпуске 7112 на сайте GitHub.
- Исправлены различные проблемы, которые привели к сбою маршрутизации App.UnhandledException. Дополнительные сведения см. в выпуске 5221 на сайте GitHub. В отношении оставшихся проблем обходные решения описаны в следующих проблемах GitHub и будут устранены в будущем выпуске 1.2:
- Исправлена проблема, из-за которой стили ListView регрессировали и изменились с WinAppSDK 1.1. Дополнительные сведения см. в выпуске 7666 на сайте GitHub.
- Исправлена проблема, из-за которой неправильный цвет фона Mica резервного фона отображалась, когда приложение неактивно. Дополнительные сведения см. в выпуске 7801 на сайте GitHub.
Известные ограничения:
- При создании нового проекта WinUI 3 с помощью Visual Studio 2022 17.4.0 она будет ссылаться на предварительную версию WinAppSDK. Используйте nuGet диспетчер пакетов для обновления ссылки на этот выпуск.
- Установка параметра MediaPlayerElement.Source относительного URI (ms-appx/ms-resource) завершается ошибкой в распакованных приложениях. Рекомендуемое решение — преобразовать относительный URI ms-appx:///URI в полностью разрешенный file:/// URI.
Обрезка для приложений, разработанных с помощью .NET
Разработчики .NET теперь могут публиковать обрезанные приложения WinAppSDK. При использовании CsWinRT 2.0 проекции C#/WinRT, распределенные в WinAppSDK, теперь обрезаются. Публикация обрезки приложения может уменьшить объем дискового пространства приложения, удалив любой неиспользуемый код из обрезки двоичных файлов. Приложения также могут видеть улучшение производительности запуска. Благодаря базовому приложению Hello World мы видели улучшение объема дискового пространства на ~80% и повышение производительности запуска на ~7% при публикации обрезки. С коллекцией WinUI мы видели улучшение дискового пространства на ~45 %.
Дополнительные сведения о включении обрезки, ограничений обрезки (например, отражения от типов обрезки) и предупреждений об обрезки см. в разделе "Обрезка автономных развертываний и исполняемых файлов". Разработчики должны тщательно протестировать свои приложения после обрезки, чтобы убедиться, что все работает должным образом. Дополнительные сведения см. в выпуске 2478 на сайте GitHub.
Поддержка Visual Studio Arm64
Как только Project Reunion (теперь WinAppSDK) 0.5, приложения, разработанные с помощью WinAppSDK, смогли работать в Arm64. Начиная с Visual Studio 17.3 (предварительная версия 2), вы можете разрабатывать собственные приложения с помощью WinAppSDK на устройствах Arm64.
Сведения о начале разработки на устройстве Arm64 см. в разделе Windows в Arm и Arm64 Visual Studio.
Notifications
AppNotificationBuilder представлен в качестве альтернативы полезным данным XML для создания и определения уведомлений приложений.
Сведения об использовании см. в спецификации AppNotificationBuilder на GitHub.
См. также краткое руководство. Уведомления о приложениях в пакете SDK для приложений Windows см. в примере создания классического приложения Windows, которое отправляет и получает уведомления о локальном приложении.
Критическое изменение.
Для push-уведомлений при вызове запроса канала приложениям потребуется использовать идентификатор объекта Azure вместо идентификатора приложение Azure. Дополнительные сведения о поиске идентификатора объекта Azure см . в кратком руководстве.
Исправлена проблема:
PushNotificationManager.IsSupported выполнит проверку режима с повышенными привилегиями. Он возвращается false
, если приложение повышено.
Известные ограничения (уведомления):
- В AppNotificationScenario
Urgent
поддерживается только для сборок Windows 19041 и более поздних версий. Вы можете использовать AppNotificationBuilder.IsUrgentScenarioSupported для проверки доступности функции во время выполнения. - В AppNotificationButton
hint-toolTip
иhint-buttonStyle
поддерживается только для сборок 19041 и более поздних версий. Вы можете использовать IsButtonStyleSupported и IsToolTipSupported, чтобы проверить, доступна ли функция во время выполнения. - В MediaPlayerElement при использовании в разметке XAML для распаковочного приложения свойство Source нельзя задать с помощью URI ms-appx или ms-resource. В качестве альтернативы задайте источник с помощью URI файла или задайте его из кода.
Оконное расширение
Полная настройка строки заголовка теперь доступна в Windows 10 версии 1809 и более поздних версий с помощью класса AppWindowTitleBar . Вы можете задать AppWindowTitleBar.ExtendsContentIntoTitleBar для true
расширения содержимого в области заголовка и SetDragRectangles , чтобы определить области перетаскивания (помимо других параметров настройки).
Если вы использовали свойство AppWindowTitleBar.IsCustomizationSupported, чтобы проверить, можно ли вызывать API AppWindowTitleBar, теперь он возвращает true
поддерживаемые версии Windows App SDK для Windows 10 (1809 и более поздних версий).
Известные ограничения (окно):
Базовые настройки строки заголовков не поддерживаются в Windows 10. К ним относятся BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor и IconShowOptions. При вызове этих свойств они будут игнорироваться автоматически. Все остальные API AppWindowTitleBar работают в Windows 10 версии 1809 и более поздних версий. Для интерфейсов API цвета кнопки заголовка (среди прочего) и Height необходимо задать true
значение ExtendsContentIntoTitleBar, в противном случае они также будут игнорироваться автоматически.
Управление доступом
Появилась функция security.accesscontrol.h с функцией GetSecurityDescriptorForAppContainerNames , чтобы упростить и упростить совместное использование именованных объектов между упакованными процессами и общими API Win32. Этот метод принимает список имен семейств пакетов (PFN) и маски доступа и возвращает дескриптор безопасности. Дополнительные сведения см. в спецификации GetSecurityDescriptorForAppContainerNames на сайте GitHub.
Другие ограничения и известные проблемы
Внимание
При ссылке на WinAppSDK 1.2 из проекта может появиться ошибка, аналогичная: "Обнаружена пониженная версия пакета: Microsoft.Windows.SDK.BuildTools с 10.0.22621.1 до 10.0.22000.194.", которая вызвана несовместимыми ссылками на пакет из проекта приложения и пакета WinAppSDK. Чтобы устранить эту проблему, можно обновить ссылку в проекте до более новой и совместимой версии Microsoft.Windows.SDK.BuildTools.
- Модульные тесты могут завершиться ошибкой
REGDB_E_CLASSNOTREG
в области выходных данных тестов в Visual Studio. В качестве обходного решения можно добавить<WindowsAppContainer>true</WindowsAppContainer>
в файл проекта. - .NET PublishSingleFile не поддерживается.
- Bootstrapper и Undocked RegFree WinRT auto-initializer defaults is (now) заданы только для проектов, которые создают исполняемый файл (OutputType=Exe или WinExe). Это предотвращает добавление автоматических инициализаторов в библиотеки классов DLL и других не исполняемых файлов по умолчанию.
- Если вам нужен автоматический инициализатор в неисполняемом файле (например, тестовая библиотека DLL, загруженная универсальным исполняемым файлом, который не инициализирует начальную загрузку), вы можете явно включить автоматический инициализатор в проекте через
<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>
или<WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>
.
- Если вам нужен автоматический инициализатор в неисполняемом файле (например, тестовая библиотека DLL, загруженная универсальным исполняемым файлом, который не инициализирует начальную загрузку), вы можете явно включить автоматический инициализатор в проекте через
- Microsoft.WindowsAppRuntime.Release.Net.dll всегда является двоичным файлом Arm64 и не работает для приложений x86 и x64. При явном вызове API начальной загрузки не используйте сборку Microsoft.WindowsAppRuntime.Release.Net.dll. В качестве обходного решения можно включить константы версий в этот исходный файл, распределенный с пакетом NuGet: '.. \include\WindowsAppSDK-VersionInfo.cs' или используйте автоматический инициализатор.
См. также
- Последние заметки о выпуске канала предварительной версии для пакета SDK для приложений Windows
- Последние заметки о выпуске экспериментального канала для пакета SDK для приложений Windows
- Установка инструментов для Windows App SDK
- Создание первого проекта WinUI 3 (пакет SDK для приложений Windows)
- Использование пакета Windows App SDK в существующем проекте
- Общие сведения о развертывании
Windows developer