Пакет Windows SDK

В Windows SDK (10.0.22621) для Windows 11 представлены последние заголовки, библиотеки, метаданные и средства для создания приложений Windows. Используйте этот пакет SDK для сборки приложений универсальная платформа Windows (UWP) и Win32 для Windows 11 версии 23H2 и предыдущих выпусков Windows.

Совет

Пакет SDK для приложений Windows
Windows App SDK предоставляет единый набор API и средств, которые отделены от ОС и выпущены для разработчиков с помощью пакетов NuGet. Эти API-интерфейсы и средства можно согласованно использовать в любом классическом приложении на Windows 11 и нижнем уровне для Windows 10, версия 1809.

Начало работы

Вы можете получить Windows SDK двумя способами: установить его на этой странице, щелкнув ссылку для скачивания или выбрав "пакет SDK для Windows 11 (10.0.22621.0)" в дополнительных компонентах установщика Visual Studio 2022. Перед установкой этого пакета SDK:

Последнее обновление: февраль 2024 г.

Требования к системе

К Windows SDK предъявляют следующие минимальные требования к системе:

Поддерживаемые операционные системы

  • Windows 10 версии 1507 или выше: Домашняя, Профессиональная, Корпоративная и Корпоративная (LTSB и S не поддерживаются для UWP)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 и Windows Server 2012 R2 (только командная строка)
  • Windows 8.1
  • Windows 7 с пакетом обновления 1 (SP1)

(Не все средства поддерживаются в более ранних операционных системах)

Требования к оборудованию

  • Процессор с тактовой частотой 1,6 ГГц или большей
  • 1 ГБ ОЗУ
  • 4 ГБ доступного пространства на жестком диске

Дополнительные требования к пакету SDK

Для установки в Windows 8.1 и более ранних операционных системах требуется обновление для универсальной среды выполнения C в Windows. Чтобы выполнить установку с помощью клиентский компонент Центра обновления Windows, перед установкой Windows SDK убедитесь, что установлены последние рекомендуемые обновления и исправления из Центра обновления Майкрософт.

Примеры

Примеры приложений для Windows теперь доступны на сайте GitHub. Вы можете просмотреть код на GitHub, клонировать личную копию репозитория из Git или скачать zip-архив всех примеров. Мы приветствуем отзывы, поэтому вы можете открыть проблему в репозитории, если у вас есть проблема или вопрос. Эти примеры предназначены для работы на настольных компьютерах, мобильных устройствах и будущих устройствах, поддерживающих универсальная платформа Windows (UWP).

Предыдущие версии пакета SDK

Ранее выпущенные пакеты SDK и эмуляторы, включая сведения об обновлении, можно найти на странице архива.

API Light Up

При использовании новых API рекомендуется написать адаптивное приложение, чтобы оно правильно выполнялось на самом широком массиве устройств Windows. Адаптивное приложение "загорается" с новыми функциями, где устройства и версия Windows поддерживают их, но в противном случае предлагает только функции, доступные в обнаруженной версии платформы. Сведения о реализации см. в статье Адаптивный к версии код.

Заметки о выпуске и известные проблемы

Windows 11, сборка 10.0.22621.3235 (выпущена 29.02.2024)

Обновление обслуживания 10.0.22621.3235.

Windows 11, сборка 10.0.22621.2428 (выпущена 24.10.2023)

Обновление обслуживания 10.0.22621.2428.

Windows 11, версия 22H2, сборка 10.0.22621.1778

Обновление 10.0.22621.1778. К выделенным функциям относятся:

  • API WindowTabManager позволяют приложениям с интерфейсами с вкладками предоставлять сведения об открытых вкладках в оболочку Windows.
  • Обновления к API HumanPresence, чтобы повысить удобство использования и добавить новые параметры для датчиков, поддерживающих возможности присутствия человека.
  • API RemoteDesktop позволяют приложениям переключаться между удаленным и локальным рабочим столом.
Windows SDK для Windows 11 версии 22H2
  • Обновление для обслуживания 10.0.22621.755. Включает поддержку ARM64 для выпуска VS 17.4.
пакет SDK для Windows 10 версии 2104
  • Удален api-ms-win-net-isolation-l1-1-0.lib. Приложения, которые связывались с api-ms-win-net-isolation-l1-1-0.lib, могут переключить t OneCoreUAP.lib в качестве замены.

  • Удален файл irprops.lib. Приложения, которые связывались с файлом irprops.lib, могут переключиться на bthprops.lib в качестве замены.

  • Перемещен enum tagServerSelection из wuapicommon.h в wupai.h и удален заголовок . Если вы хотите использовать enum tagServerSelection, необходимо включить wuapi.h или wuapi.idl.

  • Пакет API Windows 10 WinRT позволяет добавлять последнюю поддержку API среда выполнения Windows в библиотеки и приложения платформа .NET Framework 4.5+ и .NET Core 3.0+ . Чтобы получить доступ к пакету API Windows 10 WinRT, см. пакет nuget Microsoft.Windows.SDK.Contracts.

  • Семейство функций printf теперь соответствует правилам округления IEEE 754 при печати точно представленных чисел с плавающей запятой и учитывает режим округления, запрашиваемый с помощью вызовов fesetround. Устаревшее поведение доступно при связывании с legacy_stdio_float_rounding.obj.

  • Комплект сертификации приложений для Windows. В список поддерживаемых API в комплекте сертификации приложений и Магазине Windows было добавлено несколько новых API. Если в списке поддерживаемых API отображаются серым или отключенным в Visual Studio, можно внести небольшое изменение в исходный файл, чтобы получить к ним доступ. Дополнительные сведения см. в этой известной проблеме. Дополнительные обновления для тестов.

  • Обновления компилятора сообщений (mc.exe).

    • Теперь обнаруживает метку порядка байтов Юникода (BOM) в MC-файлах. Если MC-файл начинается с спецификации UTF-8, он будет считываться как файл UTF-8. В противном случае, если он начинается с спецификации UTF-16LE, он будет считываться как файл UTF-16LE. Если указан параметр -u, он будет считываться как файл UTF-16LE. В противном случае он будет считываться с помощью текущей кодовой страницы (CP_ACP).
    • Теперь позволяет избежать проблем с правилом с одним определением (ODR) во вспомогательных компонентах трассировки событий Windows, созданных mc/C++, вызванных конфликтующими макросами конфигурации (например, если два файла .cpp с конфликтующими определениями MCGEN_EVENTWRITETRANSFER связаны с одним и тем же двоичным файлом, вспомогательные средства трассировки событий Windows, созданные MC, теперь будут учитывать определение MCGEN_EVENTWRITETRANSFER в каждом .cpp файле, а не произвольно выбирать один или другой).
  • Обновления препроцессора трассировки Windows (tracewpp.exe).

    • Поддерживает входные файлы Юникода (.ini, TPL и исходный код). Входные файлы, начиная с метки порядка байтов UTF-8 или UTF-16, будут считываться как Юникод. Входные файлы, которые не начинаются с BOM, будут считываться с помощью текущей кодовой страницы (CP_ACP). Для обеспечения обратной совместимости, если указан параметр командной строки -UnicodeIgnore, файлы, начиная с спецификации UTF-16, будут рассматриваться как пустые.
    • Поддерживает выходные файлы Юникода (TMH). По умолчанию выходные файлы кодируются с помощью текущей кодовой страницы (CP_ACP). Используйте параметры командной строки -cp:UTF-8 или -cp:UTF-16 для создания выходных файлов Юникода.
    • Изменение поведения: tracewpp теперь преобразует весь входной текст в Юникод, выполняет обработку в Юникоде и преобразует выходной текст в указанную кодировку вывода. Более ранние версии tracewpp избегали преобразований в Юникоде и выполняли обработку текста, предполагая однобайтовый набор символов. Это может привести к изменению поведения в случаях, когда входные файлы не соответствуют текущей кодовой странице. В случаях, когда это проблема, рассмотрите возможность преобразования входных файлов в UTF-8 (с меткой метки) и /или с помощью параметра командной строки -cp:UTF-8, чтобы избежать неоднозначности кодирования.
  • Обновления TraceLoggingProvider.h:

    • Избегает проблем с правилом с одним определением (ODR), вызванных конфликтующими макросами конфигурации (например, если два файла .cpp с конфликтующими определениями TLG_EVENT_WRITE_TRANSFER связаны с одним двоичным файлом, вспомогательные функции TraceLoggingProvider.h теперь будут учитывать определение TLG_EVENT_WRITE_TRANSFER в каждом файле .cpp вместо произвольного выбора одного или другого).
    • В коде C++ макрос TraceLoggingWrite был обновлен, чтобы обеспечить более качественный обмен кодом между аналогичными событиями с помощью вариадических шаблонов.
  • Подписывание приложений. Подписывание Device Guard — это функция Device Guard, доступная в Microsoft Store для бизнеса и образовательных учреждениях, которая позволяет предприятиям гарантировать, что каждое приложение поступает из надежного источника. См. документацию по подписи Device Guard.

  • Заголовки пакета SDK были обновлены для устранения ошибок при компиляции с помощью стандартного препроцессора C в компиляторе MSVC cl.exe (/Zc:preprocessor, представленный в VS 2019 версии 16.6).

  • Исправлено: "GdiplusTypes.h не компилируется с NOMINMAX". См. статью Отзывы о Visual Studio.

  • При сборке с /std:c11 или /std:c17 вы получаете:

    • C99 tgmath.h
    • C11 static_assert в assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM для Windows версии 11, предназначенная для ARM64, несовместима с последней версией winnt.h

    • В качестве обходного решения используйте предыдущую версию пакета SDK для Windows 10 (сборка 19041) или clang/LLVM для Windows версии 10 для платформ ARM64.
  • DirectXMath (включая версию 3.16 в этом выпуске) несовместим с Clang/LLVM для Windows в ARM64.

  • Вариант некоторых файлов заголовков был изменен, чтобы нормализовать их для файловых систем с учетом регистра:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h и OleCtl.h были сделаны в нижнем регистре.
    • Для сборок Clang/LLVM для Windows, чтобы поддерживать как более старую версию, так и последнюю версию пакета SDK для Windows 10 без предупреждений, добавьте -Wno-nonportable-system-include-path в CLI или следующие #pragma в источнике:

    #ifdef __clang__

    #pragma clang diagnostic ignored "-Wnonportable-system-include-path"

    #endif

пакет SDK для Windows 10, обновление обслуживания версии 2004 (выпущено 16.12.2020)

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

  • Устранены непредсказуемые и трудные для диагностики сбои при связывании общих библиотек и собственных библиотек ОС (например, onecoreuap.lib и kernel32.lib)
  • Устранена проблема, из-за которой AppVerifier не работал
  • Устранена проблема, которая приводила к сбою WACK с сообщением "Не удалось включить HighVersionLie"

Дополнительные ресурсы