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

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

В настоящее время доступны следующие выпуски стабильного канала:

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

Скачивание пакета SDK для приложений Windows

Примечание.

Расширения Visual Studio для Приложений Windows (VSIX) больше не распределяются как отдельная загрузка. Они доступны в Visual Studio Marketplace в Visual Studio.

Версия 1.5

Версия 1.5.3 (1.5.240428000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.5.

  • Исправлена проблема, из-за которой ItemsRepeater иногда окно было доставлено на передний план.
  • Исправлен потенциальный сбой при обновлении состояния AcrylicBrush прозрачности.
  • Исправлена проблема, из-за ItemsRepeater которой не создавались достаточно элементов, если он был в всплывающем ShouldConstrainToRootBounds="false" окне, который был выше или шире, чем главное окно.
  • Исправлена проблема, из-за которой ошибка MSB4086 могла возникнуть во время сборки, если файл проекта не указал TargetPlatformVersion. Эта ошибка была достигнута в рамках проблемы GitHub #9531.

Версия 1.5.2 (1.5.2404000)

Это выпуск пакета SDK для приложений Windows, который включает критические исправления ошибок для выпуска 1.5 и новую функцию для поставщиков веб-каналов мини-приложений.

Обновления поставщика веб-канала мини-приложений

  • Теперь поставщики веб-каналов могут отображать объявления на панели мониторинга мини-приложений:
    • Новый FeedManager.TryShowAnnouncement API позволяет поставщику веб-каналов запрашивать, чтобы панель мониторинга мини-приложений отображала свои объявления. Чтобы отобразить объявление, создайте FeedAnnouncement объект и вызовите FeedManager.TryShowAnnouncement API.
    • Объявления веб-канала будут иметь собственные эмблемы, отображаемые на панели задач, которые можно настроить с помощью FeedAnnouncement API.
  • Теперь поставщики веб-каналов могут принять сведения об аналитике и отчетах об ошибках о поставщике, как пользователь взаимодействует с ним. Чтобы принять участие, реализуйте IFeedProviderAnalytics интерфейсы поставщика.IFeedProviderErrors

Обновления поставщика веб-каналов включают следующие новые API:

Microsoft.Windows.Widgets.Feeds.Providers
 
    FeedAnalyticsInfoReportedArgs
    FeedErrorInfoReportedArgs
    FeedManager
        SendMessageToContent
        TryShowAnnouncement
 
    FeedMessageReceivedArgs
    FeedResourceRequest
    FeedResourceRequestedArgs
    FeedResourceResponse
    IFeedAnnouncementInvokedTarget
    IFeedManager2
    IFeedProviderAnalytics
    IFeedProviderErrors
    IFeedProviderMessage
    IFeedResourceProvider
Microsoft.Windows.Widgets.Notifications
 
    AnnouncementActionKind
    AnnouncementTextColor
    FeedAnnouncement
    FeedAnnouncementInvokedArgs

Исправления ошибок

  • Исправлена проблема, из-за DispatcherTimer которой не выполнялось правильное время, если основной дисплей не работал в 60 Гц.
  • Исправлена проблема, из-за которой окно редактора метода ввода текстового поля (IME) было неправильно размещено при выполнении в коэффициенте масштабирования, отличном от 100 %. Дополнительные сведения см. в статье о проблеме GitHub #9382.
  • Исправлена проблема, из-за которой операция перетаскивания, запущенная из другого приложения, может не разрешать правильные операции копирования и перемещения или ссылки.
  • Исправлено потенциальное сбое при сбросе элемента ListView ItemsSource и с учетом фокуса сразу.
  • Исправлена проблема, из-за которой ShouldConstrainToRootBounds="false" всплывающие окна и всплывающие элементы не применяют унаследованное преобразование масштабирования. Дополнительные сведения см. в статье о проблемах GitHub #9118 и #9433.
  • Исправлен потенциальный сбой при уничтожении объекта Composition с анимацией.
  • Исправлена потенциальная авария при завершении работы NavigationView::RevokeNavigationViewItemRevokers.

Версия 1.5.1 (1.5.240311000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.5.

  • Исправлена проблема, из-за которой автономные приложения могут не создаваться из-за отсутствия возможности копирования "map.html".
  • Исправлена проблема, из-за MapControl которой не удалось инициализироваться из-за отклонения допустимых маркеров. Дополнительные сведения см. в статье о проблеме GitHub #9324.
  • Исправлена проблема, из-за MapControl которой загружен синим фоном. Дополнительные сведения см. в статье о проблеме GitHub #9377.
  • Исправлена проблема, из-за которой нажатие кнопки шеврона NavigationViewItem неправильно разворачивалось или свернуто на одном щелчке. Это также привело к тому, что меню отображаются как пустые при щелчке шеврона в PaneDisplayMode="Top" режиме. Дополнительные сведения см. в статье о проблемах GitHub #9423 и #9426.
  • Исправлена проблема, из-за которой касание NavigationViewItem касания или пера не позволит элементу отвечать на любые будущие входные данные. Дополнительные сведения см. в статье о проблеме GitHub #9429.
  • Исправлен сбой при щелчке NavigationView.PaneFooter элемента в области. Дополнительные сведения см. в статье о проблеме GitHub #9396.
  • Исправлена проблема, из-за которой значки в меню иногда отображались в неправильном месте. Дополнительные сведения см. в статье о проблеме GitHub #9409.
  • Исправлена проблема, из-за которой акрил не отображается в меню, пока не отключается от окна и обратно. Дополнительные сведения см. в статье о проблеме GitHub #9406.
  • Исправлен сбой, который может произойти во время TextBox/RichEditBox инициализации. Дополнительные сведения см. в статье GitHub о проблеме 9216.
  • Исправлены некоторые шумные исключения, которые NavigationView бросили и поймали на уничтожение.
  • Исправлена проблема, из-за которой жест "щипнуть для масштабирования" иногда отображается в виде сдвига или касания из-за неправильного PointerCaptureLost срабатывания сообщения.

Версия 1.5

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

В существующем приложении пакета SDK для приложений Windows 1.4 можно обновить пакет Nuget до версии 1.5.2402270000 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).

Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.

Обновления среды выполнения и завершения работы XAML Islands

Существует различие поведения между приложениями WinAppSDK 1.4 и WinAppSDK 1.5 для приложений на основе XAML Islands при закрытии последнего окна XAML на любом потоке.

  • В WinAppSDK 1.4 среда выполнения XAML всегда завершает цикл событий потока при закрытии последнего окна XAML в потоке.
  • В WinAppSDK 1.5:
    • Если приложение является классическим приложением WinUI, поведение по умолчанию по-прежнему совпадает с поведением в WinAppSDK 1.4.
    • Если вы используете XAML для API DesktopWindowXamlSource ("XAML Islands") по умолчанию, поведение по умолчанию теперь не завершает цикл событий потока автоматически.
    • В обоих режимах это поведение можно изменить, задав Application.DispatcherShutdownMode свойство.

Дополнительные сведения см. в документации по свойству Application.DispatcherShutdownMode при наличии. Это завершает предложение GitHub #8492.

Существует различие поведения между приложениями WinAppSDK 1.4 и WinAppSDK 1.5 для приложений на основе XAML в течение времени существования среды выполнения XAML:

  • В WinAppSDK 1.4 среда выполнения XAML завершает работу в потоке, если все WindowsXamlManager объекты DesktopWindowXamlSource в заданном потоке закрываются или завершаются, или DispatcherQueue выполняется в этом потоке (в данном случае среда выполнения XAML завершает работу на DispatcherQueue.FrameworkShutdownStarting этапе).
  • В WinAppSDK 1.5 среда выполнения XAML завершает работу в потоке только при завершении работы диспетчера в этом потоке (среда выполнения Xaml всегда завершает работу на DispatcherQueue.FrameworkShutdownStarting этапе).

Дополнительные сведения см. в документации по классу WindowsXamlManager при наличии.

Существует разница в поведении в WindowsXamlManager.InitializeForCurrentThread():

  • В WinAppSDK 1.4 WindowsXamlManager.InitializeForCurrentThread() возвращает уникальный экземпляр WindowsXamlManager объекта с каждым вызовом.
  • В WinAppSDK 1.5 возвращает существующий экземпляр, WindowsXamlManager.InitializeForCurrentThread() если он уже существует в потоке. Close/Dispose() теперь игнорируется.

Элемент управления Карты WinUI

Теперь доступен элемент управления WinUI Maps ! Этот элемент управления поддерживается WebView2 и Azure Карты, предоставляя следующие функции:

  • Сдвиг и масштабирование с помощью кнопок карты или сенсорного ввода.
  • Изменение стиля карты на спутник, местность или вид на улицу.
  • Программно добавляя взаимодействуемые пин-коды с настраиваемыми значками разработчика на карту.
  • Настройка разработчика, на которой карта сосредоточена на начальной загрузке.
  • Управление для разработчиков при скрытии или отображении кнопок для сдвига, масштабирования и стилей карт.

Элемент управления WinUI 3 Карты

Примечание.

Чтобы использовать Maps элемент управления, вам потребуется ключ Azure Карты. Чтобы создать ключ, ознакомьтесь со страницей документации по Azure Карты для создания веб-приложения.

Элемент Maps управления совершенно новый, и мы приветствуем ваши отзывы, чтобы оценить свое будущее направление!

Новый элемент управления SelectorBar

В версии 1.5 мы добавили новый SelectorBar элемент управления, позволяющий пользователям переключаться между несколькими представлениями данных. Этот элемент управления ранее был известен как "SegmentedControl" на нашей схеме развития 1.5.

Элемент управления селектора WinUI 3

Метки в основных командах CommandBarFlyout

Визуальные элементы были обновлены CommandBarFlyout , чтобы отобразить текстовую метку для элементов в области основных команд, если Label свойство установлено на сайте AppBarButton. Ранее основные команды в CommandBarFlyout области отображали только значок, но теперь они могут отображать как значок, так и метку для улучшения удобства использования.

Метки WinUI 3 CommandBarFlyout

Поддержка WebView2 для пользовательской среды и параметров

Теперь элемент управления WinUI WebView2 предоставляет возможность настраивать базовый CoreWebView2 объект с помощью пользовательского CoreWebView2Environment и CoreWebView2ControllerOptions. Это позволяет автору приложения указать альтернативный путь, из которого нужно загрузить WebView2Runtime, выбрать другой userDataFolder или задать такие параметры, как IsPrivateModeEnabled и ScriptLocale.

Suppport для .NET 8

Мы добавили поддержку .NET 8 в недавнем выпуске обслуживания версии 1.4, но по-прежнему сохраняли предупреждение об использовании идентификаторов RID для конкретной платформы. В версии 1.5 мы завершили работу, чтобы предупреждение больше не присутствовало.

Улучшенная отладка и доступность источников

Теперь мы внедряем сведения о исходном сервере Github для кода в репозитории microsoft-ui-xaml в общедоступные символы, что позволяет отладчикам автоматически скачивать исходный код. Мы также сделали другие исправления и улучшения наших символов во всем WinAppSDK, чтобы улучшить возможности отладки.

Улучшенные функциональные возможности для отладки циклов макета

Отладка циклов макета в приложении WinUI может быть проблемой, поэтому в версии 1.5 DebugSettings объект теперь предоставляет параметры, позволяющие улучшить ведение журнала и точки останова для процесса макета, чтобы упростить отладку и исправление циклов макета в приложении.

Другие новые возможности из WinAppSDK

  • Добавлена поддержка модели развертывания PublishSingleFile. Дополнительные сведения о PublishSingleFile см. в документации по развертыванию с одним файлом.
  • Добавлены улучшения для поддержки средства чтения с экрана, поддержки масштабирования текста и других функций специальных возможностей.
  • Различные улучшения стабильности и производительности на основе наших приоритетных ошибок GitHub.

Новые функции, выпущенные отдельно

Новые версии шаблонов Visual Studio WinAppSDK для C# и C++ выпускаются через Visual Studio Marketplace, и они появятся через несколько недель после выпуска версии 1.5. С новой версией шаблоны теперь могут быть выпущены независимо от выпусков WinAppSDK, что дает нам гораздо большую гибкость в получении обновлений для клиентов.

Другие ранее запланированные функции

В 1.5 мы добились прогресса по следующим функциям, которые мы объявили о нашей стратегии, но не завершили их. Они будут продолжаться в период времени 1,6.

  • Окна с вкладками
  • Поддержка перетаскивания для WebView2
  • Исследования представлений таблиц и элементов управления рукописным вводом

Динамическое освещение было удалено из стратегии в течение времени.

Известные проблемы

  • При использовании библиотек, содержащих такие ресурсы, как XAML-файлы, может возникнуть сообщение об ошибке во время выполнения, указывающее, что эти ресурсы не найдены. В этом случае может потребоваться вставить <ShouldComputeInputPris>true</ShouldComputeInputPris> в файл проекта, чтобы обеспечить включение этих ресурсов.
  • Щелкнув шеврон NavigationViewItem больше не правильно разворачивается или свернуто на одном щелчке. Двойной щелчок по-прежнему работает, как и щелчок в NavigationViewItemдругом месте.

Исправления ошибок

  • Исправлена проблема, из-за которой StackPanel применен интервал к свернутым элементам. Дополнительные сведения см. в статье о проблеме GitHub #916.
  • Исправлены проблемы с элементами управления прокруткой, которые больше не работают после закрытия другого окна приложения. Дополнительные сведения см. в статье о проблемах GitHub #9292 и #9355.
  • Исправлен сбой при задании DebugSettings.EnableFrameRateCounterзначения true до отрисовки первого кадра. Дополнительные сведения см. в статье о проблеме GitHub #2835.
  • Исправлена потенциальная ошибка компиляции для C++, в которой некоторые заголовки не включали необходимые зависимости. Обратите внимание, что изменение #include порядка может повлиять на некоторые приложения, например, причинив ошибку компиляции, IInspectable если приложение использует версию C++/WinRT старше 2023 года. Дополнительные сведения см. в статье о проблеме GitHub #9014.
  • Исправлена проблема, из-за которой ElementName привязки не работали внутри ItemsRepeaterDataTemplate. Дополнительные сведения см. в статье о проблеме GitHub #560.
  • Исправлена ошибка при запуске приложения в Visual Studio с включенной панелью инструментов в приложении. Для полного получения исправлений требуется Visual Studio 17.8 ( предварительная версия 2 или более поздняя версия). Дополнительные сведения см. в статье о проблеме GitHub #8806.
  • Исправлена проблема, из-за которой AnnotatedScrollbar иногда произошел сбой при быстрой прокрутке.
  • Исправлена проблема, из-за которой текст меню иногда усекается.
  • Исправлена проблема, из-за которой советы по обучению не получали правильного фокуса. Дополнительные сведения см. в статье о проблеме GitHub #3257.
  • Исправлена проблема, из-за которой приложение завершило сбой при установке TailVisibilityTeachingTip значения "Свернутый " при запуске. Дополнительные сведения см. в статье о проблеме GitHub #8731.
  • Исправлена проблема с обработкой файлов PRI при использовании библиотек. Дополнительные сведения см. в статье о проблеме GitHub #8857.
  • Исправлена проблема из выпуска 1.5-экспериментального2, в котором библиотека DLL проекции не была создана. Дополнительные сведения см. в статье о проблеме GitHub #4152.
  • Исправлена проблема, из-за которой кнопка с многоточием в всплывающем RichEditBox реплике форматирования текста не отображала список действий должным образом. Дополнительные сведения см. в статье о проблеме GitHub #9140.
  • Исправлена проблема, из-за которой ListView не обрабатывались ускорители клавиатуры должным образом. Дополнительные сведения см. в статье о проблеме GitHub #8063.
  • Исправлена проблема с нарушением доступа при закрытии AccessKey окна. Дополнительные сведения см. в статье о проблеме GitHub #8648.
  • Исправлен сбой при закрытии AccessKey окна. Дополнительные сведения см. в статье о проблеме GitHub #9002.
  • Исправлена проблема, влияющая на выравнивание текста в пределах MenuFlyoutItemMenuBar. Дополнительные сведения см. в статье о проблеме GitHub #8755.
  • Исправлена проблема, из-за которой выделенный текст не оставался выделенным при щелчке правой кнопкой мыши. Дополнительные сведения см. в статье о проблеме GitHub #1801.
  • Исправлена проблема, из-за которой неактивные окна завершались сбоем приложения при закрытии. Дополнительные сведения см. в статье о проблеме GitHub #8913.
  • Исправлена проблема, которая может зависать приложения при прокрутке с помощью средней кнопки мыши и нажатия слева сразу после этого. Дополнительные сведения см. в статье о проблеме GitHub #9233.
  • Исправлена проблема, из-за которой приложения завершались сбоем при запуске при использовании пользовательского NavigationViewItem. Дополнительные сведения см. в статье о проблеме GitHub #8814.
  • NavigationView Исправлена проблема, из-за которой кнопка с многоточием неправильно создаст ошибку. Дополнительные сведения см. в статье о проблеме GitHub #8380.
  • Исправлена проблема, из-за которой SystemBackdrop неправильно отрисовывается в приложении с несколькими окнами. Дополнительные сведения см. в статье о проблеме GitHub #8423.
  • Исправлена проблема дублирования при вставке в начало ObservableCollectionобъекта. Дополнительные сведения см. в статье о проблеме GitHub #8370.

Версия 1.4

Версия 1.4.5 (1.4.240211001)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема, которая может зависать приложения при нажатии кнопки мыши при прокрутке с колесиком мыши. Дополнительные сведения см. в статье о проблеме GitHub #9233.
  • Исправлена проблема с повторяющимися ресурсами при ссылке на цепочку пакетов NuGet. Дополнительные сведения см. в статье о проблеме GitHub #8857.
  • Исправлено несколько BreadcrumbBar проблем, включая утечку памяти, сбой при пустом меню с многоточием, а меню с многоточием неправильно ограничено в окне.
  • Исправлена потенциальная авария при завершении работы при выпуске графических ресурсов.

Версия 1.4.4 (1.4.231219000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема безопасности WinUI 3 диагностика.
  • Исправлена проблема ввода, из-за которой поле пароля не отображало экранную клавиатуру при активации с помощью сенсорного ввода. Дополнительные сведения см. в статье о проблеме GitHub #8946.
  • Исправлена проблема, из-за которой Microsoft.UI.Xaml.Controls.dll размер файла неожиданно вырос.
  • Исправлена проблема, из-за которой при установке фокуса произошел сбой CommandBarFlyout .
  • Обновлена поддержка пакета SDK для приложений Windows для обработки ресурсов для .NET 8 RID.
  • Исправлена проблема, из-за которой некоторые цепочки буферов были расположены или растягиваются неправильно.

Версия 1.4.3 (1.4.23115000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема, из-за которой меню не было фона в течение короткого периода времени.
  • Исправлен сбой, который может произойти в определенных сценариях с несколькими мониторами.
  • Исправлена проблема, из-за которой контекстное меню могло отображаться вне экрана.
  • Исправлена проблема со стилями окон и максимальным поведением. Дополнительные сведения см. в статье о проблеме GitHub #8996.
  • Исправлена проблема с островами, где фокус может быть неожиданно получен из другого элемента управления.
  • Исправлена проблема с порядком NavigationViewвкладок.
  • Исправлена проблема отрисовки, из-за которой в верхней части заголовка может отображаться белая полоса. Дополнительные сведения см. в статье о проблеме GitHub #8947.
  • Различные исправления производительности.

Версия 1.4.2 (1.4.231008000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлена проблема сбоя в explorer.exe, вызванная чрезмерным выделением памяти и объектов.
  • Исправлена проблема взаимодействия с заголовком, из-за которой кнопка "Назад" не работала должным образом.
  • Исправлена проблема, из-за которой создается предупреждение для исходного файла, включаемого несколько раз.
  • Исправлена проблема, влияющая на производительность контекстного меню.
  • Исправлена проблема с ярлыком .lnk, которая сделала целевой .exe всегда указывать на то же расположение пакетов в папке WindowsApps.
  • Исправлена проблема DWriteCore, влияющая на правильную отрисовку текста Indic в определенных шрифтах.
  • Исправлена проблема в представлении списка, которая препятствовала правильной навигации по клавиатуре в вложенные элементы с помощью tab/SHIFT+TAB.
  • Исправлена проблема, из-за которой сломал прокрутку элементов ComboBox путем касания после повторного расширения ComboBox. Дополнительные сведения см. в статье о проблеме GitHub #8831.
  • Исправлена проблема, из-за которой пакеты WinAppSDK не включали локализованные ресурсы WinUI для некоторых языков.
  • Исправлена несогласованность между тем, как проводник и XAML отображали предпочтительный язык пользователя.
  • Исправлена проблема с ремеслом в проводник из-за чего под активной вкладкой отображается тонкая линия.
  • Исправлена проблема, из-за которой некоторые акселераторы клавиатуры, предоставляемые платформой, были неправильно локализованы. Дополнительные сведения см. в статье о проблеме GitHub #2023.
  • Исправлена проблема с элементами управления RepeatButton, которые неоднократно прокручивались при нажатии.
  • Исправлен установщик WinAppSDK .exe, чтобы иметь правильные сведения о версии ресурса.

Версия 1.4.1 (1.4.230913002)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.4.

  • Исправлены проблемы с производительностью, чтобы улучшить время до первого кадра.
  • Исправлена проблема, из-за которой меню не уважались RequestedTheme. Например, эта проблема может привести к белому тексту на белом фоне. Дополнительные сведения см. в статье о проблеме GitHub #8756.
  • Исправлена проблема, из-за которой акриловые фоны иногда становятся полностью прозрачными в некоторых меню.
  • Исправлена проблема, из-за которой XAML иногда приводил к тому, что Windows не нужно перенаправить обои на рабочем столе.
  • Исправлена поддержка TabNavigation = Local и для и GridViewTabNavigation = CycleListView , что теперь позволяет переходить между заголовками и элементами с помощью TAB в дополнение к клавишам со стрелками.
  • Исправлены некоторые шумные исключения при закрытии подсказки. Дополнительные сведения см. в статье о проблеме GitHub #8699.

Версия 1.4

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

В существующем приложении пакета SDK для приложений Windows 1.3 можно обновить пакет Nuget до версии 1.4.230822000 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).

Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.

Настраиваемая панель заголовка + слияние заголовков AppWindow

Пользовательская панель заголовков WinUI 3 использует реализацию панели заголовков AppWindow, а также API NonClientInputPointerSource под капотом в пакете SDK для приложений Windows 1.4. В результате оба реализации заголовка теперь ведут себя одинаково с теми же функциями и ограничениями. Это полностью совместимо во всех поддерживаемых случаях. Любое приложение с настраиваемой панелью заголовков будет вести себя так же, как и раньше. Но теперь проще для разработчиков WinUI 3, которые могут быть новыми для пользовательских заголовков, чтобы понять и использовать их, используя эти новые функции:

  • Лучший сценарий по умолчанию, когда разработчик не определяет элемент заголовка конкретно (замена резервной панели заголовка из WinUI 2)
  • Отдельные области перетаскивания на панели заголовков, что позволяет создавать несколько регионов перетаскивания и размещать элементы управления щелчком в любой части области, отличной от клиента (область заголовка).
  • Перетаскиваемые области приложения, которые можно поместить в любое место приложения или сделать весь перетаскиваемый приложение
  • Улучшена поддержка тем, которая заменяет их на основе ресурсов
    • Так как области перетаскивания прозрачны, они следуют теме приложения каждый раз
  • Дополнительные настройки: скрытие минимальной, максимальной и закрываемой кнопки; поместите системные значки в заголовок; или имеют разные регионы, действующие как кнопки подпись, которые получают ответы NCHITTEST
  • Больше свободы разработчика, которая позволяет смешивать и сопоставлять с API панели заголовков AppWindow, например использовать ИНТЕРФЕЙСы API WinUI 3 более высокого уровня для большинства сценариев, но с API AppWindow, смешанными для управления более низким уровнем

Обновления мини-приложений

Добавлены три новых интерфейса для поставщиков мини-приложений для реализации: IWidgetProvider2, IWidgetProviderAnalyticsи IWidgetProviderErrors. IWidgetProvider2 позволяет поставщикам реагировать на действие "Настройка ", вызываемое пользователем, которое идентично тому, что доступно для сторонних мини-приложений. IWidgetProviderErrors Интерфейсы IWidgetProviderAnalytics используются поставщиками для сбора данных телеметрии для своих мини-приложений. Аналитика и события сбоя о мини-приложениях передаются соответствующим поставщикам мини-приложений. WidgetAnalyticsInfoReportedArgsКлассы WidgetCustomizationRequestedArgsи WidgetErrorInfoReportedArgs классы используются для обмена соответствующими сведениями для поддержки новых функциональных возможностей.

Xaml Islands больше не экспериментальные

Xaml Islands и базовая платформа ContentIslands больше не экспериментальны.

  • В настоящее время XAML Islands тестируются только для использования в приложениях C++. В этом выпуске нет удобных элементов оболочки для использования в WPF или WinForms.
  • DesktopWindowXamlSource и связанные типы добавлены в пространство имен Microsoft.UI.Xaml.Hosting для XAML Islands. XamlRoot.ContentIslandEnvironment добавлено, чтобы получить доступ к базовым сведениям о острове для элемента.
  • Многие новые типы появились в пространстве имен Microsoft.UI.Content и пространстве имен Microsoft.UI.Input в качестве базовой поддержки XAML Islands или для использования этой функции ContentIslands без XAML.
  • Добавлен новый DragDropManager (плюс связанные типы) в пространстве имен Microsoft.UI.Input.DragDrop для сценариев Island.

ItemsView

Мы представляем новый элемент управления списком под названием ItemsView и соответствующий конкретный ItemContainer класс. ItemContainer — это упрощенный контейнер со встроенными состояниями выбора и визуальными элементами, которые могут легко упаковывать требуемое содержимое и использоваться для ItemsView сценария управления коллекцией.

  • Новый ItemsView элемент управления отображает коллекцию данных. ItemsViewаналогичен ListView элементам управления и GridView элементам управления, но создается с помощью ItemsRepeaterScrollViewItemContainer компонентов и ItemCollectionTransitionProvider компонентов. Он предлагает уникальную возможность подключать пользовательские Layout или ItemCollectionTransitionProvider реализации. Еще одним ключевым преимуществом является возможность переключения макета во время сохранения выделения элементов. Внутренний ScrollView элемент управления также предлагает функции, недоступные в ScrollViewerListView/GridViewэлементе управления, например возможность управления анимацией во время программных прокрутк.
    • Новое свойство ItemsRepeater (и новый ItemTransitionProviderItemsView элемент управления) позволяет указать ItemCollectionTransitionProvider объект для управления анимациями перехода в этом элементе управления. Также CreateDefaultItemTransitionProvider был добавлен Layoutметод, который позволяет объекту макета обеспечить резервный переход для его сопровождения, если он не указан явным образом в элементе ItemsView управления.
    • Новое IndexBasedLayoutOrientation свойство, в Layout котором ориентация макета, если она есть, основана на их индексе в исходной коллекции. Значение по умолчанию — IndexBasedLayoutOrientation.None. Пользовательские макеты задают это свойство путем вызова нового (защищенного) SetIndexBasedLayoutOrientation метода.
    • Новое VisibleRect свойство VirtualizingLayoutContext , которое получает видимый прямоугольник окна представления в связанном FrameworkElement с ним объекте Layout. Защищенный виртуальный VirtualizingLayoutContext.VisibleRectCore метод можно переопределить, чтобы указать значение, которое будет возвращено из VisibleRect свойства.
  • Новый LinedFlowLayout класс обычно используется для размещения элементов элемента управления коллекцией ItemsView . Это особенно полезно для отображения коллекции рисунков. Это делает это, выкладывая их слева направо, и сверху вниз, в линиях равной высоты. Рисунки заполняют горизонтальную линию, а затем помещать в следующую строку. Изображения могут быть обрезаны в левой и правой краях, чтобы поместиться в линию. Они также могут быть развернуты горизонтально и обрезаны на верхних и нижних краях, чтобы заполнить линию при использовании режима растяжения.

Новые возможности из WinAppSDK

  • Новый ThemeSettings класс, позволяющий приложениям Win32 WinRT обнаруживать, когда параметр высокой контрастности системы изменился, как и класс специальных возможностей UWP Параметры. Дополнительные сведения см. в спецификации API Параметры на сайте GitHub.
  • AccessKeyManager.EnterDisplayMode — это новый метод для отображения ключей доступа для текущего ориентированного элемента предоставленного корня. Ключи доступа находятся в режиме отображения при отображении подсказки ключа для вызова команды, например нажатия клавиши ALT в Paint, чтобы показать, какие ключи соответствуют элементам управления. Этот метод позволяет программным способом вводить режим отображения.
  • Application.ResourceManagerRequested предоставляет механизм для IResourceManager разрешения URI ресурсов для сценариев, когда значение по умолчанию ResourceManager не будет работать. Дополнительные сведения см. в спецификации API Application.ResourceManagerRequested на GitHub.
  • Версия пакета SDK WebView2 была обновлена с версии 1661.34 до 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false теперь поддерживается, позволяя всплывающему элементу или всплывающему элементу расширяться за пределами родительского окна. Свойство SystemBackdrop было добавлено к этим типам для поддержки акрила в этих неограниченных всплывающих окнах. Меню по умолчанию используются для использования акрила.
  • Closed, FrameworkClosedи были добавлены DesktopAcrylicController в IsClosed и MicaController для улучшения обработки во время завершения работы объекта или потока.
  • DesktopAcrylicController.Kind теперь можно выбрать один из стандартных акриловых внешних эффектов.
  • DispatcherQueue имеет некоторые новые события и вспомогательные средства, чтобы упростить более упорядоченное завершение работы и для приложений с помощью Островов, чтобы легко запустить стандартный поддерживаемый цикл событий.
  • InputNonClientPointerSource В пространстве имен Microsoft.UI.Input можно использовать для сценариев пользовательской панели заголовков для определения не клиентских областей. Код может зарегистрировать соответствующие события, например навести указатель мыши и щелкнуть события в этих регионах.
  • AppWindow имеет некоторые новые вспомогательные средства, чтобы получить и связать с DispatcherQueueним.
  • Новое TreeView.SelectionChanged событие позволяет разработчикам реагировать, когда пользователь или код изменяет набор выбранных узлов в элементе TreeView управления.
  • Новый ScrollView элемент управления предоставляет новую альтернативу ScrollViewer. Этот новый элемент управления очень выровнен в поведении и API с существующим ScrollViewer элементом управления, но основан на InteractionTrackerновых функциях, таких как изменения представления на основе анимации, а также предназначен для обеспечения полной функциональности ItemsRepeater. См. более гибкий ScrollViewer · Проблема #108 · Дополнительные сведения см. в microsoft/microsoft-ui-xaml (github.com). Различные новые типы, в том числе ScrollPresenterявляются частью общей ScrollView модели.
  • Новый AnnotatedScrollBar элемент управления расширяет функциональность обычной полосы прокрутки, предоставляя простой способ навигации по большой коллекции элементов. Это достигается с помощью щелкаемой железной дороги с метками, которые действуют как маркеры. Кроме того, он позволяет более детально понять прокручиваемое содержимое, отображая подсказку при наведении указателя мыши на щелкаемый рельс.

Известные проблемы

Исправления ошибок

  • Исправлена проблема, из-за которой вызов API вызвал сбой Microsoft.Windows.AppLifecycle.AppInstance.Restart("") распакованных приложений. Дополнительные сведения см. в статье о проблеме GitHub 2792.
  • Исправлена проблема с сбоем установщика, появилась в версии 1.4-экспериментальной. Дополнительные сведения см. в статье о проблеме GitHub #3760.
  • Исправлена проблема, из-за которой зачеркнутый текст не был удален должным образом в TextBlock. Дополнительные сведения см. в статье о проблеме GitHub #1093.
  • Исправлена проблема, из-за которой некорректная навигация shift+ TAB в панели с табукуснойNavigation , заданная как "Один раз". Дополнительные сведения см. в статье о проблеме GitHub #1363.
  • Исправлена проблема в C++/WinRT, которая не смогла {x:Bind} правильно работать со свойством именованного элемента управления XAML. Дополнительные сведения см. в статье о проблеме GitHub #2721.
  • Исправлена проблема со средой выполнения AccessViolation в приложениях WinUI Desktop, вызванных параметром DebugSettings.EnableFrameRateCounter = true. Дополнительные сведения см. в статье о проблеме GitHub #2835.
  • Исправлена проблема, из-за которой XamlTypeInfo.g.cpp не включались необходимые заголовки. Дополнительные сведения см. в статье GitHub о проблеме 4907.
  • Исправлена проблема с сбоем, вызванная одновременным много сенсорным вводом и вводом мыши. Дополнительные сведения см. в статье о проблеме GitHub #7622.
  • Исправлена проблема, из-за которой активное окно приложения WinUI 3 не прокручивалось, когда системный параметр отключал прокрутку неактивных окон при наведении мыши. Дополнительные сведения см. в статье о проблеме GitHub #8764.
  • Исправлен сбой при попытке подкласса MediaPlayerElement.
  • Исправлены некоторые проблемы сбоя и утечки памяти в TreeView.
  • Исправлена проблема с зависанием приложения, которая может произойти при использовании клавиатуры для навигации RadioButtons.
  • Исправлен сбой при использовании клавиатуры для навигации.PipsPager
  • Исправлено содержимое WebView2 для масштабирования с параметром специальных возможностей "Размер текста" в приложении Параметры.
  • Исправлен сбой, который может произойти при выполнении анимации при отключении дисплея.
  • Исправлена проблема с производительностью, появилась в версии 1.3, которая добавила около 10 % накладные расходы на первый макет или отрисовку.

Версия 1.3

Версия 1.3.3 (1.3.230724000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.3.

  • Исправлена проблема, из-за которой мышь иногда перестала работать при закрытии диалогового окна.
  • Исправлена проблема развертывания, из-за которой не удалось установить приложения из-за несоответствия версий пакетов в системе. Дополнительные сведения см. в статье о проблеме GitHub #3740.
  • Исправлена проблема, влияющая на положение контекстного меню в пакете SDK для приложений Windows 1.3.
  • Исправлена проблема, из-за которой некоторые приложения WinUI3 в некоторых ситуациях завершались сбоем при закрытии приложения, так как XAML завершает работу слишком рано.
  • Исправлена проблема, из-за которой значки шрифта не зеркало правильно в языках справа налево. Дополнительные сведения см. в статье о проблеме GitHub #7661.
  • Исправлена проблема, из-за которой приложение завершалось сбоем при завершении работы, когда ресурсы были отключены в неправильном порядке. Дополнительные сведения см. в статье о проблеме GitHub #7924.

Версия 1.3.2 (1.3.23060202)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.3.

  • Исправлен сбой при установке защищенного курсора.
  • Исправлена проблема с производительностью в XamlMetadataProvider во время запуска приложения. Дополнительные сведения см. в статье о проблеме GitHub #8281.
  • Исправлена проблема с гиперссылками и касанием в RichTextBlock. Дополнительные сведения см. в статье о проблеме GitHub #6513.
  • Исправлена проблема с прокруткой и сенсорной панелью в WebView2. Дополнительные сведения см. в статье о проблеме GitHub #7772.
  • Исправлена проблема, из-за которой обновление пакета SDK для приложений Windows иногда требовало перезапуска Visual Studio. Дополнительные сведения см. в статье о проблеме GitHub #3554.
  • Исправлено шумное исключение при завершении работы при запуске в отладчике.

Версия 1.3.1 (1.3.230502000)

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.3.

  • Исправлена проблема, из-за которой приложения завершались сбоем при настройке SystemBackdrop, если содержимое было null. Дополнительные сведения см. в статье о проблеме GitHub #8416.
  • Исправлена проблема, из-за которой приложения завершали сбой при настройке заголовка окна в XAML, добавлена новая возможность 1.3.0. Дополнительные сведения см. в статье о проблеме GitHub #3689.
  • Исправлена проблема, из-за которой окно неправильно сфокусироваться при изменении его содержимого.
  • Исправлена проблема при создании проектов C++ с шаблонами проектов WinAppSDK 1.3.
  • Обновленные шаблоны в Visual Studio Marketplace

Версия 1.3

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

В существующем приложении пакета SDK для приложений Windows 1.2 можно обновить пакет Nuget до версии 1.3.23031000 (см. раздел "Обновление пакета" в Visual Studio и управление ими с помощью диспетчер пакетов NuGet).

Сведения об обновленной среде выполнения и MSIX см. в разделе "Загрузки" для пакета SDK для приложений Windows.

API фона XAML

Благодаря свойствам, встроенным в окно XAML, mica и фоновые акриловые фоны теперь проще использовать в приложении WinUI 3. Дополнительные сведения о свойствах фона Xaml см. в документации по API фона системы и Mica Graph .

public MainWindow()
{
    this.InitializeComponent();

    this.SystemBackdrop = new MicaBackdrop();
}

Window.AppWindow

Замена нескольких строк стандартного кода теперь позволяет использовать API AppWindow непосредственно из окна.Window.AppWindow

Новые возможности из WinAppSDK

  • ApplicationModel.DynamicDependency: PackageDependency.PackageGraphRevisionId заменяет устаревший mddGetGenerationId.
  • Environment Manager: EnvironmentManager.AreChangesTracked чтобы сообщить, могут ли изменения в диспетчере среды отслеживаться в приложении.
  • Новое событие, отладка Параметры. XamlResourceReferenceFailed теперь возникает, когда не удается устранить ссылку на статическую или темную подстановку. Это событие предоставляет доступ к трассировке, в которой платформа ищет этот ключ, чтобы лучше разрешить отладку сбоев статических и подстановок ThemeResource. Дополнительные сведения см. в спецификации API поиска ссылок на ресурсы XAML трассировки на сайте GitHub.

Другие обновления

  • Ознакомьтесь с нашей вехой WinAppSDK 1.3 на сайте GitHub WinAppSDK, чтобы узнать о дополнительных проблемах, устраненных в этом выпуске.
  • Ознакомьтесь с нашей вехой WinUI 3 в WinAppSDK 1.3 в microsoft-ui-xaml GitHub для получения дополнительных проблем, связанных с этим выпуском.
  • С помощью последней экспериментальной ВЕРСИИ VSIX теперь вы можете преобразовать приложение между распаковкой и упакованным с помощью меню Visual Studio вместо файла проекта.

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

Из-за недавнего изменения компилятора xaml существующий проект, обновляющийся до версии 1.3, может столкнуться с ошибкой сборки, как показано ниже в Visual Studio:

> C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.3.230331000**\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(537,17): error MSB4064: The "PrecompiledHeaderFile" parameter is not supported by the "CompileXaml" task loaded from assembly: Microsoft.UI.Xaml.Markup.Compiler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=de31ebe4ad15742b from the path: C:\Users\user\\.nuget\packages\microsoft.windowsappsdk\\**1.2.230118.102**\tools\net472\Microsoft.UI.Xaml.Markup.Compiler.dll. Verify that the parameter exists on the task, the <UsingTask> points to the correct assembly, and it is a settable public instance property.

Это вызвано тем, что Visual Studio использует библиотеку dll задач компилятора xaml с версии 1.2, но вождения ее несовместимой логикой MSBuild с версии 1.3, как показано в приведенном выше тексте ошибки. Обходной путь — завершить работу Visual Studio, перезапустить его и перезагрузить решение.

Версия 1.2

Версия 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.

Исправленные проблемы

Известные ограничения

  • При создании нового проекта 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 , если приложение повышено.

Известные ограничения (уведомления)

  • В AppNotificationScenarioUrgent поддерживается только для сборок Windows 19041 и более поздних версий. Вы можете использовать AppNotificationBuilder.IsUrgentScenarioSupported, чтобы проверка, доступна ли функция во время выполнения.
  • В AppNotificationButtonhint-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>.
  • Microsoft.WindowsAppRuntime.Release.Net.dll всегда является двоичным файлом Arm64 и не работает для приложений x86 и x64. При явном вызове API начальной загрузки не используйте сборку Microsoft.WindowsAppRuntime.Release.Net.dll. В качестве обходного решения можно включить константы версий в этот исходный файл, распределенный с пакетом NuGet: '.. \include\WindowsAppSDK-VersionInfo.cs' или используйте автоматический инициализатор.

Версия 1.1

Последний доступный выпуск происхождения 1.1.x стабильного канала пакета SDK для приложений Windows версии 1.1.5. 1.1.x поддерживает все стабильные функции канала (см . раздел "Функции, доступные в разделе канала выпуска" в каналах выпуска пакета SDK для Windows).

Версия 1.1.5

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.1.

Исправления ошибок

  • Исправлена проблема, из-за которой акрил не работает, если Mica включена. Дополнительные сведения см . в статье 7200 на сайте GitHub.
  • Исправлена проблема, из-за которой приложения, зависящие от установщика WindowsAppRuntime (например, распакованных приложений), не выполнялись на компьютерах Windows 10 ARM64. Дополнительные сведения см . в статье 2564 на сайте GitHub.

Версия 1.1.4

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.1.

Исправления ошибок

  • Исправлена регрессия от версии 1.0.x, что приводит к сбою ListView, TreeView и других элементов управления List при прокрутке со многими элементами. Дополнительные сведения см . в статье 7230 на сайте GitHub.
  • Исправлена проблема с DispatcherQueue, из-за которой обратные вызовы в очереди больше не вызывались.
  • Исправлена проблема, приводящая к сбою приложения при вызове DeploymentManager.Initialize нескольких раз в одном сеансе приложения.
  • Исправлена проблема, из-за которой приложения C# не смогли создать arm64 Visual Studio. Дополнительные сведения см . в статье о проблеме 7140 на сайте GitHub.
  • Исправлен временный сбой в коде образов XAML из-за неправильной обработки сбоев.
  • Исправлена проблема утечки памяти при присоединении обработчика событий в ItemsRepeater с родительским UserControl. Дополнительные сведения см . в статье 6123 на сайте GitHub.
  • Исправлена проблема, приводяющая к сбою сборки в Visual Studio 17.3 при настройке проекта приложения для включения автоматического обновления пакета при загрузке неопубликованного пакета (т. е. appinstaller). Дополнительные сведения см . в статье 2773.
  • Исправлена проблема, из-за которой приложения, распределенные в Магазине, которые вызывают инициализацию (необходимо, например, для push-отправки), чтобы вызвать ее избыточно в качестве DeploymentManager::GetStatus, возвращаемой Package Install Needed при установке основных и одноэлементных пакетов. Это привело к снижению производительности при запуске приложения.
  • Исправлена проблема, приводяющая к исключению в приложениях одного экземпляра, когда событие очистки было призвано игнорироваться, если оно не может быть открыто. Дополнительные сведения см. в разделе pr на сайте GitHub.

Версия 1.1.3

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.1.

Исправления ошибок

  • Исправлен связанный набор проблем, в которых XAML завершается сбоем при включении progressBar, ProgressRing, PipsPager, PersonPicture или элемента управления Expander на первой странице приложения. Дополнительные сведения см . в статье 7164 на сайте GitHub.
  • Исправлена проблема, из-за которой установщик x64 не удалось установить среду выполнения пакета SDK для Приложений Windows. Дополнительные сведения см . в статье 2713 на сайте GitHub.
  • Исправлена проблема, из-за которой WindowsAppRuntime не удалось установить, если установлена более высокая версия среды выполнения. Дополнительные сведения см . в обсуждении 2708 на сайте GitHub.

Версия 1.1.2

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.1.

Исправления ошибок

  • Исправлена проблема, из-за которой XAML завершает работу при закрытии окна во время открытия диалогового окна. Дополнительные сведения см . в статье 1032 на сайте GitHub.
  • <auto-generated> Добавлен тег в файлах C# для предотвращения предупреждений StyleCop. Дополнительные сведения см . в статье 4526 на сайте GitHub.
  • Исправлена проблема, приводящая к ошибке нарушения доступа и сбою при вызове mddBootstrapInitialize, когда пакет платформы сопоставления не установлен. Дополнительные сведения см . в статье 2592 на сайте GitHub.
  • Исправлена проблема, из-за которой шаблоны элементов WinUI 3 C# отсутствуют в Visual Studio. Дополнительные сведения см . в статье 7148 на сайте GitHub.
  • Исправлена проблема, из-за которой установщик WindowsAppRuntime завершается ошибкой при запуске от имени системного пользователя. Дополнительные сведения см . в статье 2546 на сайте GitHub.

Версии 1.1.1

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.1.

Исправления ошибок

  • Исправлена проблема, из-за которой приложения иногда завершались сбоем во время операции перетаскивания. Дополнительные сведения см . в статье 7002 на сайте GitHub.
  • Исправлена проблема, из-за которой строка заголовка исчезала при переключении AppWindowPresenterKind с FullScreen на Default.
  • Исправлена проблема, из-за которой API начальной загрузки, такие как ApiInformation.IsPropertyPresent и ApiInformation.IsMethodPresent которые вызывают необработанные исключения в приложениях, которые не упакованы. Дополнительные сведения см . в статье 2382 на сайте GitHub.
  • Исправлена проблема, из-за которой приложение зависает при максимизации приложения с помощью ввода пера.

Версия 1.1

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

Примечание.

Для разработчиков C# требуется одна из следующих версий пакета SDK для .NET (или более поздней версии): 6.0.202, 6.0.104, 5.0.407, 5.0.213. Чтобы обновить версию пакета SDK для .NET, посетите .NET Downloads or update to the latest version of Visual Studio. Без требуемой версии пакета SDK для .NET при обновлении пакета NuGet появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется WinRT.Runtime.dll версии 1.6 или больше".

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

Теперь приложения могут инициировать явный перезапуск с определенными аргументами и состоянием сборки существующего API RegisterApplicationRestart для регистрации в ОС для перезапуска в обновлении, зависания и перезагрузки сценариев.

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

  • Любое упаковаемое или распаковано классическое приложение может завершить работу и перезапустить его в команде и получить доступ к произвольной строке командной строки для перезапуска экземпляра AppInstance.Restart() с помощью API.
    • Это снятая и синхронная версия API UWP RequestRestartAsync() , которая позволяет перезапустить с аргументами и возвращает значение AppRestartFailureReason , если перезагрузка не выполнена.
    • Ознакомьтесь с документацией по API перезапуска на сайте GitHub для получения сведений об использовании и справочных сведениях.

WinUI 3

WinUI 3 — это платформа пользовательского интерфейса (UX) для пакета SDK для приложений Windows. Этот выпуск включает новые функции из WinAppSDK 1.0, а также несколько улучшений стабильности из выпусков версии 1.0 и 1.1( предварительная версия).

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

  • Мика и фоновый акрил теперь доступны для приложений WinUI 3.
  • Впервые появилось в версии 1.0.1, мы стабилизировали и включили создание нескольких окон в одном потоке в приложениях WinUI 3. Дополнительные сведения см . в выпуске 5918 .

Исправленные ошибки:

  • Исправлена проблема при использовании Mica, в которой приложение завершится сбоем при делении окна на два экрана. Дополнительные сведения см . в выпуске 7079 на сайте GitHub.
  • Исправлена проблема, из-за которой приложения C# с WebView2 завершались сбоем при запуске, когда среда выполнения C/C++ (CRT) не установлена путем обновления пакета SDK WebView2 с версии 1020.46 до 1185.39.
  • Исправлена проблема, из-за которой некоторые округленные угловы отображали градиент, когда они должны быть сплошным цветом. Дополнительные сведения см . в выпуске 6076 и выпуске 6194 на сайте GitHub.
  • Исправлена проблема, из-за которой обновленные стили отсутствуют из generic.xaml.
  • Исправлена проблема с циклом макета, приводя к сбою приложения при прокрутке до конца ListView. Дополнительные сведения см . в статье 6218 на сайте GitHub.
  • Исправлена проблема, из-за которой пользователи не смогли удалить элемент при включении перетаскивания. Дополнительные сведения см . в статье 7008 на сайте GitHub.

Известные ограничения:

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

Развертывание

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

  • Упакованные приложения теперь могут принудительно развернуть пакеты среды выполнения пакета SDK для Приложений Windows с помощью API DeploymentManager.Initialize(DeploymentInitializeOptions) или использовать параметр --force с установщиком среды выполнения приложений Windows.
  • Существуют дополнительные категории функциональных расширений, РазблокированныеDEH, доступные для упакованных приложений. Дополнительные сведения см. в заметках о выпуске 1.1(предварительная версия 3). Для них требуется установить пакет пакета SDK для приложений Windows. Сведения о загрузке пакета SDK для приложений Windows для установки среды выполнения.
  • Автономное развертывание поддерживается. Ознакомьтесь с общими сведениями о развертывании пакета SDK для приложений Windows для разных платформ и автономного развертывания, а также о том, как приступить к работе.
  • API начальной загрузки, необходимый для приложений, которые не развертываются с помощью MSIX, включают новые параметры для улучшения удобства использования и устранения неполадок. Ознакомьтесь с нашей документацией по приложениям C#, API Bootstrapper C# и приложениям C++, заголовку mddbootstrapheader.h. Дополнительные сведения см. в разделе "Использование среды выполнения пакета SDK для приложений Windows", упакованных с внешним расположением или распаковкой.

Известные ограничения:

  • Для запуска установщика среды выполнения приложений Windows (WindowsAppRuntimeInstall.exe) требуется включить неопубликованную загрузку. Дополнительные сведения см . в статье 2469 на сайте GitHub.
  • Создание пакета MSIX с помощью меню проекта Visual Studio может завершить работу Visual Studio в некоторых сценариях. Эта проблема будет исправлена в Visual Studio версии 17.3 ( предварительная версия 2) и была исправлена до версии 17.2. При возникновении этой проблемы вы можете обойти ее, создав MSIX из командной строки, переключившись на непакованный проект или отменить изменения обратно в пакет SDK для приложений Windows 1.0.
  • Автономные приложения, упакованные с помощью MSIX, не поддерживаются в 1809 году, что приводит к сбою приложения при запуске.

Elevation

Теперь приложения могут работать с повышенными привилегиями.

Известные ограничения:

Диспетчер переменных среды

Диспетчер переменных среды — это новый API, представленный в пакете SDK для приложений Windows 1.1. Диспетчер переменных среды позволяет разработчикам получать доступ к переменным среды и изменять переменные среды в процессе, пользователе и компьютере область из одной области API.

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

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

  • Получение и установка переменных среды в процессе, пользователей и область компьютера.
  • Автоматическая переменная среды отменить изменения при удалении пакета, использующего диспетчер переменных среды.
  • Включает определенные API для PATH и PATHEXT.

Известные ограничения:

  • Доступно только в Windows 11

MRT Core

MRT Core — это упрощенная версия современной системы управления ресурсами Windows, которая распространяется в составе пакета SDK для приложений Windows.

Исправленные проблемы:

  • Проблема, из-за которой ресурсы не индексируются по умолчанию при добавлении файла ресурсов с помощью пользовательского интерфейса VS, исправлены в пакете SDK для .NET 6.0.300. Если используется более ранняя версия пакета SDK для .NET, продолжайте использовать обходное решение, описанное в заметках о выпуске версии 1.0. Дополнительные сведения см . в статье 1786 на сайте GitHub.
  • Проблема, из-за которой универсальный код ресурса (URI) не был правильно создан в распаковке приложений WinUI 3 c++ в Visual Studio 2022 17.2. Если используется более старая версия Visual Studio, обновите Visual Studio до версии 17.2, чтобы получить это исправление.

Известные ограничения:

  • В проектах .NET файлы ресурсов, скопированные в папку проекта, не индексируются на F5, если приложение уже создано. В качестве обходного решения перестройте приложение. Дополнительные сведения см . в статье 1503 на сайте GitHub.

Дополнительные сведения см. в разделе "Управление ресурсами с помощью MRT Core".

Notifications

Разработчики упакованных (включая упакованные с внешним расположением) и распакованные приложения теперь могут отправлять уведомления Windows.

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

  • Поддержка уведомлений приложений для упакованных и распакованных приложений.
    • Разработчики могут отправлять уведомления приложений, также известные как всплывающие уведомления, локально или из собственной облачной службы. Обзор уведомлений о приложении.
  • Поддержка push-уведомлений для упакованных и распакованных приложений.
    • Разработчики могут отправлять необработанные уведомления и уведомления приложений из собственной облачной службы. Обзор push-уведомлений.

Известные ограничения:

  • Отправка уведомлений из приложения с повышенными привилегиями не поддерживается. PushNotificationManager::IsSupported()не будет выполнять проверка для режима с повышенными привилегиями.

Оконное расширение

Чтобы упростить программный доступ к функциональным возможностям, реализованным в USER32.dll (см. Windows и сообщения), этот выпуск повысят больше этой функциональности.AppWindow

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

  • Приложения с существующими окнами имеют больше контроля над тем, как отображается окно, вызывая AppWindow.ShowOnceWithRequestedStartupStateэквивалент ShowWindow(SW_SHOWDEFAULT).
  • Приложения могут отображать, свернуть или восстановить окно, указывая, следует ли активировать окно во время вызова.
  • Теперь приложения могут определять определенные измерения для размера клиентской области окна в координатах Win32, не требуя вычисления размера не клиентской области, чтобы получить определенный размер клиентской области.
  • Дополнительные API WinRT доступны для поддержки z-порядка управления окнами на основе функций hWndInsertAfter SetWindowPos.
  • Приложения, нарисовав настраиваемые заголовки, AppWindowTitleBar.ExtendsContentIntoTitleBar могут задать PreferredTitleBarHeight параметр. Теперь у вас есть выбор между стандартной строкой заголовка высоты или высокой строкой заголовка, которая обеспечивает больше места для интерактивного содержимого. Ознакомьтесь со строкой заголовка в рекомендациях по проектированию Fluent, чтобы узнать, когда использовать высокую строку заголовка.

Исправленные проблемы:

  • При первом вызове полноэкранного докладчика окно теперь помещается на весь экран правильно. Дополнительные сведения см . в выпуске 1853 на сайте GitHub.
  • Windows, созданные с AppWindow::GetFromWindowIdOverlappedPresenter помощью докладчика по умолчанию, но не имеют ограничений с точки зрения изменений стилей окон, поступающих из других API. Windows, созданные с помощью AppWindow::Create, будут иметь параметры защиты докладчика по умолчанию с самого начала. Дополнительные сведения см . в выпуске 2049 на сайте GitHub.
  • OverlappedPresenter.SetBorderAndTitlebar Использование API для скрытия подпись кнопок и границ приведет к тому, что верхняя граница 1px будет развернута. Эта проблема устранена. Дополнительные сведения см . в выпуске 1693 на сайте GitHub.

Известные ограничения:

  • При использовании API AppWindowTitlebar для настройки цветов стандартной строки заголовка значок и текст неправильно сравниваются со стандартной строкой заголовка. Дополнительные сведения см. в статье GitHub о проблеме 2459.

  • При решении проблемы GitHub 2049 (см. выше), мы ввели следующую ошибку: если применить любой AppWindowPresenter к AppWindow, которую вы получили из GetFromWindowId, измените стиль окна, отслеживаемый этим выступающим путем вызова API USER32, а затем попытайтесь отменить изменения Вернитесь к предыдущему состоянию окна, повторно применив докладчика по умолчанию, результатом является окно без строки заголовка. Если вы используете любой выступающий в приложении и используете вызовы USER32 для изменения стилей окон в то время, когда применяется выступающий, возможно, потребуется добавить обходное решение, чтобы обеспечить правильное поведение окна до тех пор, пока эта ошибка не будет исправлена. В качестве шаблона можно использовать следующий фрагмент кода, чтобы обойти проблему:

    AppWindow m_appWindow;
    OverlappedPresenter m_defaultPresenter;
    
    private void EnterFullScreen_Click(object sender, RoutedEventArgs e)
    {
        // Capture the default presenter.
        m_defaultPresenter = m_appWindow.Presenter as OverlappedPresenter;
    
        // Opt in the default overlapped presenter so it can control various aspects of the AppWindow.
        m_defaultPresenter.IsAlwaysOnTop = m_defaultPresenter.IsAlwaysOnTop;
        m_defaultPresenter.IsResizable = m_defaultPresenter.IsResizable;
        m_defaultPresenter.IsMinimizable = m_defaultPresenter.IsMinimizable;
        m_defaultPresenter.IsMaximizable = m_defaultPresenter.IsMaximizable;
        m_defaultPresenter.SetBorderAndTitleBar(m_defaultPresenter.HasBorder, m_defaultPresenter.HasTitleBar);
    
        m_appWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
    }
    
    private void ExitFullScreen_Click(object sender, RoutedEventArgs e)
    {
        m_appWindow.SetPresenter(AppWindowPresenterKind.Default);
    }
    

C#/WinRT

Теперь поддерживаются компоненты C# среда выполнения Windows, включая пользовательские элементы управления WinUI. Это позволяет авторам компонентов распространять компоненты среды выполнения C#на любой совместимый язык WinRT (например, C++/WinRT). См . пошаговое руководство. Создание компонента C# с помощью элементов управления WinUI 3 и использование его из приложения C++/WinRT, использующего пакет SDK для приложений Windows и пример на сайте GitHub для начала работы.

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

  • Приложения, ссылающиеся на пакет, зависящий от WebView2 (например, Microsoft.Identity.Client), не создаются. Это вызвано конфликтующими двоичными файлами во время сборки. Дополнительные сведения см . в статье 2492 на сайте GitHub.
  • При использовании dotnet build с проектом библиотеки классов C# WinAppSDK может появиться ошибка сборки "Не удалось загрузить задачу Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent". Чтобы устранить эту проблему <EnableMsixTooling>true</EnableMsixTooling> в файле проекта.
  • Шаблоны WinAppSDK по умолчанию отмечают, что MaxVersionTested="10.0.19041.0", если он должен быть "10.0.22000.0". Для полной поддержки некоторых функций, особенно РазблокированныхDEH, обновите MaxVersionTested на "10.0.22000.0" в файле проекта.

Версия 1.0

Последний доступный выпуск происхождения 1.0.x стабильного канала пакета SDK для приложений Windows версии 1.0.4. 1.0.x поддерживает все стабильные функции канала (см . раздел "Компоненты, доступные в разделе канала выпуска" в каналах выпуска пакета SDK для Приложений Windows).

Версия 1.0.4

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.0.

Исправления ошибок

  • Исправлена проблема, из-за которой AppBars при использовании в качестве Page.TopAppBar или Page.BottomAppBar не отображался на экране.
  • Исправлена проблема, из-за которой приложения с именем пакета 12 символов или меньше, которые используют элемент управления WinUI из MUXControls.dll немедленно завершатся сбоем. Дополнительные сведения см . в статье 6360 на сайте GitHub.
  • Исправлены проблемы с вводом сенсорного ввода, которые вызывают проблемы с сочетаниями клавиш и другими сценариями. Дополнительные сведения см . в статье о проблеме 6291 на сайте GitHub.
  • Исправлена проблема, из-за которой приложения, упакованные с помощью MSIX или развернутые как автономные, чтобы не удалось развернуть.
  • Исправлена проблема, из-за которой приложения иногда завершались сбоем во время операции перетаскивания. Дополнительные сведения см . в статье 7002 на сайте GitHub.

Версия 1.0.3

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.0.

Исправления ошибок

  • Исправлена проблема, из-за которой приложения C# с WebView2 завершались сбоем при запуске, когда среда выполнения C/C++ (CRT) не установлена.
  • Исправлены проблемы с вводом сенсорного ввода, которые вызывают проблемы с сочетаниями клавиш и другими сценариями. Дополнительные сведения см . в статье о проблеме 6291 на сайте GitHub.

Примечание. Обычно мы не добавляем функциональные возможности в выпуск обслуживания, но исправление WebView2 этого выпуска требует обновления до последней версии пакета SDK WebView2 (1020.46 до 1185.39). Дополнительные сведения о среде выполнения WebView2 см. в заметках о выпуске пакета SDK WebView2 1.0.1185.39 и распространении приложения и среды выполнения WebView2.

Версия 1.0.2

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 1.0.

Исправления ошибок

  • Исправлена проблема с циклом макета, приводя к сбою приложения при прокрутке до конца ListView. Дополнительные сведения см . в статье 6218 на сайте GitHub.
  • Исправлена проблема, из-за которой приложения C# завершались сбоем при запуске, когда среда выполнения C/C++ (CRT) не установлена. Однако CRT по-прежнему требуется для приложений C# с помощью WebView2. Дополнительные сведения см . в статье 2117 на сайте GitHub.
  • Исправлена проблема, из-за которой приложения с одним проектом MSIX не создавали файл appinstaller. Дополнительные сведения см . в статье 1821 на сайте GitHub.
  • Исправлена проблема, из-за которой приложения WinUI не поддерживали .NET 6 dotnet build.

Версия 1.0.1

Это выпуск пакета SDK для приложений Windows, включающий критические исправления ошибок и поддержку нескольких окон для выпуска 1.0.

Исправления ошибок

  • Исправлена проблема, из-за которой mddBootstrapAutoinitializer не компилировался с включенными НеявнымиUsings. Дополнительные сведения см . в статье 1686 на сайте GitHub.
  • Исправлена проблема, из-за которой фокус в WebView2 был неожиданно потерян, что приводило к проблемам ввода и выбора. Дополнительные сведения см . в статье о проблеме 5615 и выпуске 5570 на GitHub.
  • Исправлена проблема, из-за которой панель инструментов в приложении WinUI 3 была неизменяемой при использовании настраиваемой строки заголовка в приложении WinUI 3.
  • Исправлена проблема, из-за которой макет привязки не отображалась при использовании настраиваемой строки заголовка в приложении WinUI 3. Дополнительные сведения см . в статье о проблеме 6333 и выпуске 6246 на GitHub.
  • Исправлена проблема, из-за которой возникло исключение при задании свойства Window.ExtendsContentIntoTitleBar при вызове панели Window.SetTitlebar с по-прежнему загрузкой UIElement.
  • Исправлена проблема, из-за которой приложения MSIX с одним проектом не поддерживали dotnet build.
  • Исправлена проблема, из-за которой после установки упаковаемого приложения не устанавливались непакованные приложения. Дополнительные сведения см . в статье 1871 на сайте GitHub.
  • Исправлена проблема с снижением производительности во время операций перетаскивания мыши.
  • Исправлен сбой при вызове GetWindowIdFromWindow() в распакованных приложениях. Дополнительные сведения см . в обсуждении 1891 на сайте GitHub.

Ограничения и известные проблемы для версии 1.0 также применяются к версии 1.0.1.

Кроме того, для приложений с настраиваемыми строками заголовков мы внесли изменения в этом выпуске (и исправлены многочисленные проблемы), которые включают исправления в окно стекла, используемое для операций перетаскивания. Рекомендуется использовать значения и поведение по умолчанию (дать им попробовать!). Если в строке заголовка использовались поля, чтобы кнопки подпись по умолчанию были интерактивными, рекомендуется визуализировать область перетаскивания, задав фон строки заголовка красным, а затем изменив поля для расширения области перетаскивания к элементам управления подпись.

Новые возможности

Мы стабилизировали и включили создание нескольких окон в одном потоке в приложениях WinUI 3. Дополнительные сведения см . в выпуске 5918 .

Версия 1.0

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

WinUI 3

WinUI 3 — это платформа пользовательского интерфейса (UX) для пакета SDK для приложений Windows. В этом выпуске мы добавили несколько новых функций из пакета SDK для приложений Windows 0.8 и стабилизировали проблемы из выпусков предварительной версии 1.0.

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

  • Мы добавили новые элементы управления (PipsPager, Expander, BreadcrumbBar) и обновили существующие элементы управления, чтобы отразить последние стили Windows из WinUI 2.6.
  • Упаковка MSIX с одним проектом поддерживается в WinUI путем создания нового приложения с помощью "Пустое приложение, упаковаемое..." быстрого начала
  • Теперь мы поддерживаем развертывание приложений WinUI 3, которые не упаковываются в Windows версии 1809 и выше. Дополнительные сведения см. в разделе "Создание первого проекта WinUI 3".
  • Проекты WinUI 3 теперь могут задать целевую версию до Windows 10 версии 1809. Ранее они могут быть заданы только ниже версии 1903.
  • Панель инструментов в приложении Горячая перезагрузка и динамическое визуальное дерево для WinUI поддерживаются в Visual Studio 2022 preview 5 и GA.

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

  • Известные проблемы для упакованных и распакованных приложений WinUI:

    • Ошибка во время выполнения в приложениях C++ или C#, ссылающихся на компонент среда выполнения Windows C++:
      • Чтобы устранить проблему, добавьте приведенный ниже целевой объект в конец .vcxproj компонента среда выполнения Windows:

        <Target Name="GetPriIndexName">
        <PropertyGroup>
            <!-- Winmd library targets use the default root namespace of the project for the App package name -->
            <PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
            <!-- If RootNamespace is empty fall back to TargetName -->
            <PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
        </PropertyGroup>
        </Target>
        
      • Ожидаемая ошибка будет аналогична ошибке WinRT— 0x80004005: "Не удается найти ресурс из "ms-appx:///BlankPage.xaml".

  • Известные проблемы для приложений WinUI с одним проектом MSIX (пустое приложение, шаблон packaged):

    • Отсутствует пункт меню "Пакет и публикация", пока не перезапустить Visual Studio: при создании нового приложения с одним проектом MSIX в Visual Studio 2019 и Visual Studio 2022 с помощью шаблона проекта "Пустое приложение" (WinUI 3 в классическом приложении) команда публикации проекта не отображается в меню, пока не закройте и повторно откройте Visual Studio.
    • Приложение C# с одним проектом MSIX не будет компилироваться без дополнительного компонента C++ (v14x) универсальная платформа Windows Tools. Дополнительные сведения см. в статье "Установка средств для пакета SDK для приложений Windows".
    • Потенциальная ошибка во время выполнения в приложении с одним проектом MSIX, которая использует типы, определенные в указанной среда выполнения Windows компоненте: чтобы устранить, вручную добавьте в appxmanifest.xml записи активируемых классов.
      • Ожидаемая ошибка в приложениях C# — COMException: класс не зарегистрирован (0x80040154 (REGDB_E_CLASSNOTREG)).
      • Ожидаемая ошибка в приложениях C++/WinRT — winrt::hresult_class_not_registered.
  • Известные проблемы для приложений WinUI 3, которые не упаковываются (не упакованные приложения):

  • Известные проблемы для упаковки и развертывания приложений WinUI:

    • Эта Package команда не поддерживается в приложениях WinUI с одним проектом MSIX (пустое приложение, упакованный шаблон). Вместо этого используйте Package & Publish команду для создания пакета MSIX.
    • Чтобы создать пакет NuGet из библиотеки классов C# с Pack помощью команды, убедитесь, что активен ConfigurationRelease.
    • Команда Pack не поддерживается в среда выполнения Windows компонентах C++ для создания пакета NuGet.

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

Оконное расширение

Пакет SDK для приложений Windows предоставляет класс AppWindow , который развивается в предыдущем удобном классе Windows.UI.WindowManagement.AppWindow preview и делает его доступным для всех приложений Windows, включая Win32, WPF и WinForms.

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

  • AppWindow — это высокоуровневый API окон, который позволяет легко использовать сценарии окна, которые хорошо интегрируются с пользовательским интерфейсом Windows и другими приложениями. Представляет высокоуровневую абстракцию управляемого системой контейнера содержимого приложения. Это контейнер, в котором размещено содержимое, и представляет сущность, с которой пользователи взаимодействуют при изменении размера и перемещении приложения на экране. Для разработчиков, знакомых с Win32, AppWindow можно рассматривать как высокоуровневую абстракцию HWND.
  • DisplayArea представляет высокоуровневую абстракцию HMONITOR, следуя тем же принципам, что и AppWindow.
  • DisplayAreaWatcher позволяет разработчику наблюдать за изменениями топологии отображения и перечислять DisplayAreas в настоящее время, определенные в системе.

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

Входные данные

Это интерфейсы API ввода, которые поддерживают WinUI и предоставляют поверхность API более низкого уровня для разработчиков для достижения более сложных взаимодействий с входными данными.

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

  • API указателя: PointerPoint, PointerPointProperties и PointerEventArgs для поддержки получения сведений о событиях указателя с помощью API ввода XAML.
  • API InputPointerSource: представляет объект, зарегистрированный для ввода указателя отчета, и предоставляет курсор указателя и обработку входных событий для API SwapChainPanel XAML.
  • API курсора: позволяет разработчикам изменять растровое изображение курсора.
  • API ЖестаRecognizer: позволяет разработчикам распознавать определенные жесты, такие как перетаскивание, удержание и щелчки при указании сведений указателя.

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

  • Все функции статической фабрики PointerPoint удалены: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints и GetIntermediatePointsTransformed.
  • Пакет SDK для приложений Windows не поддерживает получение объектов PointerPoint с идентификаторами указателей. Вместо этого можно использовать функцию-член PointerPoint GetTransformedPoint для получения преобразованной версии существующего объекта PointerPoint. Для промежуточных точек можно использовать функции-члены PointerEventArgs GetIntermediatePoints и GetTransformedIntermediatePoints.
  • Прямое использование API пакета SDK платформы Windows.UI.Core.CoreDragOperation не будет работать с приложениями WinUI.
  • Свойства PointerPoint RawPosition и ContactRectRaw были удалены, так как они ссылались на непрогнозируемые значения, которые совпадали с обычными значениями в ОС. Вместо этого используйте Position и ContactRect. Прогнозирование указателя теперь обрабатывается с помощью объекта API Microsoft.UI.Input.PointerPredictor .

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

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

DWriteCore

DWriteCore — это реализация пакета SDK для приложений Для Windows DirectWrite, которая является API DirectX для высококачественной отрисовки текста, разрешения не зависящих от разрешения шрифтов структуры и полной поддержки текста и макета Юникода. DWriteCore — это форма DirectWrite, которая работает в версиях Windows до Windows 10 версии 1809 (10.0; Сборка 17763) и открывает дверь для использования кроссплатформенной платформы.

Функции DWriteCore содержат все функции DirectWrite с несколькими исключениями.

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

  • DWriteCore не содержит следующие функции DirectWrite:
    • Шрифты для сеанса
    • Шрифты определяемых пользователем символов (EUDC)
    • API потоковой передачи шрифтов
  • Поддержка API отрисовки низкого уровня является частичной.
  • DWriteCore не взаимодействует с Direct2D, но можно использовать IDWriteGlyphRunAnalysis и IDWriteBitmapRenderTarget.

Дополнительные сведения см. в обзоре DWriteCore.

MRT Core

MRT Core — это упрощенная версия современной системы управления ресурсами Windows, которая распространяется в составе пакета SDK для приложений Windows.

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

  • В проектах .NET файлы ресурсов, скопированные в папку проекта, не индексируются на F5, если приложение уже создано. В качестве обходного решения перестройте приложение. Дополнительные сведения см . в статье 1503 .
  • В проектах .NET, когда файл ресурсов добавляется в проект с помощью пользовательского интерфейса Visual Studio, файлы могут не индексироваться по умолчанию. Дополнительные сведения см . в статье 1786 . Чтобы обойти эту проблему, удалите записи, приведенные ниже в ФАЙЛЕ CSPROJ:
    <ItemGroup>
        <Content Remove="<image file name>" />
    </ItemGroup>
    <ItemGroup>
        <PRIResource Remove="<resw file name>" />
    </ItemGroup>
    
  • Для распаковки приложений C++ WinUI URI ресурсов не создается правильно. Чтобы обойти эту проблему, добавьте следующее в vcxproj:
    <!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -->
    
    <PropertyGroup>
        <AppxPriInitialPath></AppxPriInitialPath>   
    </PropertyGroup>
    

Дополнительные сведения см. в разделе "Управление ресурсами с помощью MRT Core".

Развертывание

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

  • Вы можете автоматически инициализировать пакет SDK для приложений Windows с помощью WindowsPackageType project свойства, чтобы загрузить среду выполнения пакета SDK для приложений Windows и вызвать API пакета SDK для приложений Windows. Инструкции см. в статье "Создание первого проекта WinUI 3".
  • Распакованные приложения могут развертывать пакет SDK для приложений Windows, интегрируя в автономный установщик пакета SDK .exe для приложений Windows в существующую программу установки MSI или программы установки. Дополнительные сведения см . в руководстве по развертыванию пакета SDK для приложений, зависящих от платформы, с внешним расположением или распаковкой.
  • Неупакованные приложения .NET также могут использовать оболочку .NET для API загрузчика, чтобы динамически принимать зависимость от пакета пакета sdk для приложений Windows во время выполнения. Дополнительные сведения о оболочке .NET см . в библиотеке оболочки .NET.
  • Упакованные приложения могут использовать API развертывания, чтобы проверить и убедиться, что на компьютере установлены все необходимые пакеты. Дополнительные сведения о работе API развертывания см . в руководстве по развертыванию пакета SDK для приложений, зависящих от платформы.

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

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

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

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

  • Обновление с .NET 5 до .NET 6. При обновлении в пользовательском интерфейсе Visual Studio могут возникнуть ошибки сборки. В качестве обходного решения вручную обновите файл TargetFrameworkPackage проекта следующим образом:

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

  • При установке нескольких версий Visual Studio 2019 в Visual Studio 2019 не удается установить последующий язык VSIX. Если установлено несколько версий Visual Studio 2019 (например, выпуск и предварительная версия), а затем установите VSIX пакета SDK для Приложений Windows для C++ и C#, то вторая установка завершится ошибкой. Чтобы устранить эту проблему, удалите средства упаковки MSIX для Visual Studio 2019 после первого языка VSIX. Дополнительные сведения об этой проблеме см . в этом отзыве .

  • Альтернативой 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);.

Версия 0.8

Последний доступный выпуск происхождения 0.8.x стабильного канала пакета SDK для приложений Windows версии 0.8.12.

Примечание.

Пакет SDK для приложений Windows ранее носил кодовое имя Project Reunion. Некоторые ресурсы ПАКЕТА SDK версии 0.8 и более ранних версий по-прежнему используют имя кода. В некоторых разделах документации по-прежнему используется имя Project Reunion, так как в них описывается существующий ресурс или более ранний выпуск.

Версия 0.8.12

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 0.8.0.

Примечание.

Для разработчиков C# требуется одна из следующих версий пакета SDK для .NET: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (или более поздней версии). Чтобы обновить версию пакета SDK для .NET, посетите .NET Downloads or update to the latest version of Visual Studio. Без требуемой версии пакета SDK для .NET при обновлении пакета NuGet появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется WinRT.Runtime.dll версии 1.6 или больше".

Исправленные ошибки:

  • Исправлена проблема, из-за которой приложения с помощью SwapChainPanel или WebView2 непредсказуемо завершались сбоем из-за нарушения доступа.

Версия 0.8.11

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 0.8.0.

Примечание.

Для разработчиков C# требуется одна из следующих версий пакета SDK для .NET: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (или более поздней версии). Чтобы обновить версию пакета SDK для .NET, посетите .NET Downloads or update to the latest version of Visual Studio. Без требуемой версии пакета SDK для .NET при обновлении пакета NuGet появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется WinRT.Runtime.dll версии 1.6 или больше".

Исправленные ошибки:

  • Исправлена регрессия, из-за которой событие потерянного фокуса срабатывает при выборе текста с помощью мыши.

Версия 0.8.10

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 0.8.0.

Примечание.

Для разработчиков C# требуется одна из следующих версий пакета SDK для .NET: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (или более поздней версии). Чтобы обновить версию пакета SDK для .NET, посетите .NET Downloads or update to the latest version of Visual Studio. Без требуемой версии пакета SDK для .NET при обновлении пакета NuGet появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется WinRT.Runtime.dll версии 1.6 или больше".

Исправленные ошибки:

  • Исправлены проблемы, из-за чего приложения иногда завершают сбой во время операции перетаскивания.

Примечание.

Пакет SDK для приложений Windows 0.8.9 не выпущен. Версия, выпущенная непосредственно после версии 0.8.8, — 0.8.10.

Версия 0.8.8

Это выпуск пакета SDK для приложений Windows, содержащий критические исправления ошибок для выпуска 0.8.0.

Примечание.

Для разработчиков C# требуется одна из следующих версий пакета SDK для .NET (или более поздней версии): 6.0.202, 6.0.104, 5.0.407, 5.0.213. Чтобы обновить версию пакета SDK для .NET, посетите .NET Downloads or update to the latest version of Visual Studio. Без требуемой версии пакета SDK для .NET при обновлении пакета NuGet появится сообщение об ошибке: "Для этой версии WindowsAppSDK требуется WinRT.Runtime.dll версии 1.6 или больше".

Исправленные ошибки:

  • Исправлены проблемы с вводом сенсорного ввода в TextBox относительно мягкой клавиатуры и общего взаимодействия. Эти проблемы также повлияли на сочетания клавиш. Дополнительные сведения см . в статье о проблеме 6291 на сайте GitHub.
  • Исправлена проблема, из-за которой окно приложения иногда отображалось как неактивное при активности.
  • Исправлена проблема с производительностью, вызванная запуском UIA (модель автоматизации пользовательского интерфейса) во внешних процессах.
  • Исправлена проблема стабильности приложения с вводом пера.
  • Исправлена проблема, из-за которой отрисовка значков png в меню резко отложена из-за UIA.

Версия 0.8.7

Это выпуск пакета SDK для приложений Windows, который включает несколько обновлений производительности для приложений C#/.NET. Чтобы обновить эту версию, вам потребуется ссылаться на последнюю версию пакета Windows SDK. Для этого добавьте свойство <WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion> в .csproj файл с версией ПАКЕТА SDK, которую приложение предназначено для TargetFramework свойства. Например:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.19041.24</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

Эта версия проекции пакета SDK для Windows будет доступна в предстоящем выпуске обслуживания .NET 6. После этого обновления пакета SDK для .NET необходимо удалить <WindowsSdkPackageVersion> свойство из файла проекта.

Если это свойство не задано, появится сообщение об ошибке: "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."

Версия 0.8.6

Это выпуск пакета SDK для приложений Windows, который включает несколько улучшений производительности для приложений C#/.NET для выпуска 0.8.0.

Чтобы обновить эту версию пакета SDK для приложений Для Windows, необходимо установить последнее обновление пакета SDK для .NET декабря (см. раздел "Скачать .NET и .NET 5" 10 мая 2022 г.). Если у вас нет минимальной требуемой версии установленного пакета SDK для .NET, вы увидите ошибку, например "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."

Исправления ошибок

Подробный список улучшений производительности см. в заметках о выпуске C#/WinRT 1.4.1.

Версия 0.8.5

Это выпуск пакета SDK для приложений Windows, который включает более критические исправления ошибок для выпуска 0.8.0.

Исправления ошибок

  • Исправлена проблема, из-за которой приложения WinUI использовали входные данные указателя для сбоя.
  • Исправлена проблема, из-за которой кнопки заголовка (min, max, close) не имеют округленных углов в Windows 11.
  • Исправлена проблема, из-за которой параметры макета изменения размера не отображались при наведении указателя мыши на кнопку "Развернуть или восстановить" в Windows 11.
  • Исправлена проблема, из-за которой возникло исключение сбоя при создании объекта PointCollection . Дополнительные сведения см . в статье 971 на сайте Github.

Ограничения и известные проблемы для версии 0.8 также применяются к версии 0.8.5, если не отмечено в противном случае в разделе ниже.

Версия 0.8.4

Это выпуск пакета SDK для приложений Windows, который включает более критические исправления ошибок для выпуска 0.8.0.

Исправления ошибок

  • Исправления для настраиваемых строк заголовков, чтобы ContentDialog не закрывал его, а кнопки заголовка округляются.
  • Исправлена ошибка при обработке изображений при изменении масштаба дисплея.
  • Исправлены ошибки с вырезками, при которых пользовательский интерфейс исчезает или обрезается неправильно

Ограничения и известные проблемы для версии 0.8 также применяются к версии 0.8.4, если не отмечено в противном случае в разделе ниже.

Версия 0.8.3

Это выпуск пакета SDK для приложений Windows, который включает более критические исправления ошибок для выпуска 0.8.0.

Исправления ошибок

Фокус клавиатуры был потерян, когда окно было свернуто, а затем восстановлено, требуя щелчка мыши для восстановления фокуса.

Ограничения и известные проблемы для версии 0.8 также применяются к версии 0.8.3, если не отмечено в противном случае в разделе ниже.

Версия 0.8.2

Это выпуск пакета SDK для приложений Windows, который включает более критические исправления ошибок для выпуска 0.8.0.

Исправления ошибок

  • Пакет SDK для приложений Windows и WinUI 3 теперь поддерживаются в Visual Studio 2022 preview 2 и более поздних версий.
  • Для приложений .NET при передаче массива перечислений может возникать следующая ошибка: Object contains non-primitive or non-blittable data.
  • Запись с помощью панели рукописного ввода внутри текстового поля приводит к сбою
  • Значки и изображения всегда загружаются в их 100 % масштабируемого значения, а не на основе значения масштабирования монитора.
  • Сборка мусора EventSource<T> приводит к последующему сбою отмены подписки обработчиков (дополнительные сведения см. в статье о проблеме GitHub).
  • Исправление безопасности: дополнительные сведения см. в разделе CVE-2021-34533 .
  • SwapChainPanel.CompositionScaleChanged иногда возвращает неверные значения CompositionScale после изменения шкалы отображения

Ограничения и известные проблемы для версии 0.8 также применяются к версии 0.8.2, если не отмечено в противном случае в приведенном ниже разделе.

Версия 0.8.1

Это выпуск пакета SDK для приложений Windows, содержащий несколько критически важных исправлений для выпуска 0.8.0.

Исправления ошибок

  • Пакет SDK для приложений Windows не может выполняться в последней сборке программы предварительной оценки Windows
  • Сбой в EditableComboBox при вводе значения, которое не отображается в раскрывающемся списке
  • WebView2 не позволяет пользователю выходить на вкладку после получения фокуса
  • Полное определение пространства имен Windows.Foundation.Metadata.DefaultOverload в созданном коде WinUI, чтобы избежать неоднозначности пространства имен
    • Исправлена ошибка #5108.
  • Исправление безопасности— дополнительные сведения см. в разделе CVE-2021-34489 .

Ограничения и известные проблемы для версии 0.8 также применяются к версии 0.8.1, если не отмечено в противном случае в разделе ниже.

Стабильная версия 0.8.0

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

Этот выпуск поддерживает все функции стабильного канала.

WinUI 3

Этот выпуск включает множество исправлений ошибок и улучшенную стабилизацию в WinUI 3. Это все новые изменения в WinUI 3 с момента выпуска WinUI 3 — Project Reunion 0.5:

  • Элемент управления Pivot был добавлен обратно и теперь можно использовать в любом приложении WinUI 3.

  • Все исправления ошибок из Project Reunion версии 0.5.5, v0.5.6 и v0.5.7 включены в этот выпуск.

  • Новые исправления ошибок, включая следующие:

    • Щелчок правой кнопкой мыши в TextBox приводит к аварийному завершению приложения.
    • NavigationView вызывает сбой в UWP при использовании предварительной версии Reunion 0.5.
    • ProgressBar не показывает различие между параметром паузы и ошибки
    • Сбой в RichEditBox при копировании, вставке и изменении стиля текста
    • Кнопки подпись окна неуместны, если SetTitleBar не задан или null

    Полный список ошибок, устраненных в этом выпуске, см . в репозитории GitHub.

  • ColorHelper.ToDisplayName API больше недоступен.

  • Были удалены следующие типы:

    • Microsoft.Graphics.IGeometrySource2D
    • Microsoft.Graphics.IGeometrySource2DInterop

    Взамен используйте Windows.Graphics.IGeometrySource2D и Windows.Graphics.IGeometrySource2DInterop.

  • Все типы в пространстве имен были перемещены Microsoft.UI.Dispatching в Microsoft.System пространство имен, включая класс DispatcherQueue.

  • Свойство AcrylicBrush.BackgroundSource было удалено, так как HostBackdrop не поддерживается BackgroundSource в WinUI 3.

Дополнительные сведения о WinUI см. в библиотеке Windows UI 3 (WinUI).

Чтобы просмотреть элементы управления и функции WinUI 3 в действии, можно клонировать и создать приложение коллекции WinUI 3 из GitHub или скачать приложение из Microsoft Store.

Чтобы приступить к разработке с помощью WinUI, проверка следующие статьи:

DWriteCore

Этот выпуск DWriteCore включает следующие новые и обновленные функции. DWriteCore представлен и описан в обзоре DWriteCore.

Примечание.

DWriteCoreCreateFactory функционально совпадает с функцией DWriteCreateFactory, экспортируемой системной версией DirectWrite. Функция DWriteCore имеет другое имя, чтобы избежать неоднозначности в том случае, если вы связываете оба DWriteCore.lib и DWrite.lib.

Справочник по API DWriteCore и DirectWrite см . в справочнике по API DWriteCore и справочнике по API DirectWrite.

MRTCore

  • Действие сборки для ресурсов автоматически устанавливается при добавлении ресурса в проект, что снижает потребность в настройке проекта вручную.

Ограничения

  • Этот выпуск в настоящее время не поддерживается в канале разработки программы предварительной оценки Windows. Это исправлено в версии 0.8.1.

  • Классические приложения (C# или C++ desktop): этот выпуск поддерживается только в классических приложениях (C++ или C#), которые упаковываются с помощью MSIX. Чтобы использовать пакет SDK для приложений Windows в распакованных классических приложениях, необходимо использовать экспериментальный канал выпуска.

Внимание

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

Известные проблемы

  • Средства WinUI 3, такие как динамическое визуальное дерево, Обозреватель live Property и Горячая перезагрузка в версии 0.8 и более поздних версий, требуют Visual Studio 2019 16.11 ( предварительная версия 3) и более поздних версий.

  • Приложения, использующие WinUI 3 и пакет SDK для приложений Windows 0.8, не могут использовать библиотеки классов, использующие Project Reunion 0.5. Обновите библиотеки классов, чтобы использовать пакет SDK для приложений Windows 0.8.

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

  • При частом переключении между светлым и темным режимом может возникнуть сбой.

  • Для приложений .NET при передаче массива перечислений может возникнуть следующая ошибка: Object contains non-primitive or non-blittable data.это исправлено в версии 0.8.2.

  • В настоящее время для приложений .NET нет способа отказаться от индексирования изображения в качестве ресурса приложения с помощью пользовательского интерфейса Visual Studio. Чтобы обойти эту проблему, добавьте directory.Build.targets (см. статью "Настройка сборки — Visual Studio для инструкций") в проект и удалите образы следующим образом:

    • Чтобы удалить определенные изображения (обратите внимание, что требуется относительный путь):

      <Project> 
      <ItemGroup> 
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
    • Удаление изображений на основе метаданных:

      <Project>
      <ItemGroup>
          <Content Remove="@(None->WithMetadataValue('Pack','true'))" />
      </ItemGroup>
      </Project>
      

    Исправление этой проблемы планируется для предстоящего выпуска . На этом этапе описанные выше обходные пути больше не потребуются.

Версия 0.5

Последний доступный выпуск происхождения 0.5.x стабильного канала пакета SDK для приложений Windows версии 0.5.9.

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

Этот выпуск поддерживает все функции стабильного канала.

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

Этот выпуск имеет следующие ограничения и известные проблемы:

  • Классические приложения (C# или C++ desktop): этот выпуск поддерживается только в классических приложениях (C++ или C#), которые упаковываются с помощью MSIX. Чтобы использовать пакет SDK для приложений Windows в распакованных классических приложениях, необходимо использовать экспериментальный канал выпуска.
  • Приложения .NET должны быть предназначены для сборки 18362 или более поздней версии: TFM должен иметь или более поздней версии, а проект <TargetPlatformVersion> упаковки должен иметь net6.0-windows10.0.18362 значение 18362 или более поздней версии. Дополнительные сведения см. в статье об известной проблеме на сайте GitHub.

Внимание

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