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


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

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

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

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

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

Примечание.

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

Версия 1.1

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

Версия 1.1.5

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

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

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

Версия 1.1.4

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

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

  • Исправлена регрессия от версии 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.

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

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

Версия 1.1.2

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

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

  • Исправлена проблема, из-за которой 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.

Исправления ошибок (1.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( предварительная версия).

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

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

  • Исправлена проблема при использовании 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::GetFromWindowId OverlappedPresenter помощью докладчика по умолчанию, но не имеют ограничений с точки зрения изменений стилей окон, поступающих из других 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" в файле проекта.