Пакет Windows SDK

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

Совет

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

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

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

Последнее обновление: 4 октября 2021 г.

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

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

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

  • Windows 10 версии 1507 или более поздней: Домашняя страница, Professional, образование и Enterprise (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, перед установкой пакета SDK для Windows убедитесь, что установлены последние рекомендуемые обновления и исправления из Центра обновления Майкрософт.

Примеры

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

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

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

Осветить API

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

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

пакет SDK Windows 10 версии 2104
  • Удален api-ms-win-net-isolation-l1-1-0.lib. Приложения, которые связывались с api-ms-win-net-isolation-l1-1-0.lib, могут переключить oneCoreUAP.lib в качестве замены.

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

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

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

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

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

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

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

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

    • Избегает проблем с одним определением (ODR), вызванных конфликтующими макросами конфигурации (например, если два CPP-файла с конфликтующими определениями TLG_EVENT_WRITE_TRANSFER связаны с одним двоичным файлом, вспомогательные функции TraceLoggingProvider.h теперь учитывают определение TLG_EVENT_WRITE_TRANSFER в каждом CPP-файле вместо произвольного выбора одного или другого).
    • В коде C++ макрос TraceLoggingWrite был обновлен, чтобы улучшить совместное использование кода между аналогичными событиями с помощью шаблонов variadic.
  • Подписывание приложений. Подписывание 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 в ИНТЕРФЕЙС командной строки или следующие #pragma в источнике:

    #ifdef __clang__

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

    #endif

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

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

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

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