Windows SDK

Windows 11 대한 Windows SDK(10.0.22621)는 Windows 애플리케이션을 빌드하기 위한 최신 헤더, 라이브러리, 메타데이터 및 도구를 제공합니다. 이 SDK를 사용하여 Windows 11, 버전 23H2 및 이전 Windows 릴리스용 UWP(유니버설 Windows 플랫폼) 및 Win32 애플리케이션을 빌드합니다.

Windows 앱 SDK
이 Windows 앱 SDK OS에서 분리되고 NuGet 패키지를 통해 개발자에게 릴리스되는 통합 API 및 도구 집합을 제공합니다. 이러한 API 및 도구는 Windows 11 데스크톱 앱에서 일관된 방식으로 사용하고 Windows 10, 버전 1809 위해 다운레벨로 사용할 수 있습니다.

시작

다운로드 링크를 선택하거나 Visual Studio 2022 설치 관리자의 선택적 구성 요소에서 "Windows 11 SDK(10.0.22621.0)"를 선택하여 이 페이지에서 Windows SDK 가져올 수 있습니다. 이 SDK를 설치하기 전에 다음을 수행합니다.

마지막 업데이트: 2024년 2월

시스템 요구 사항

Windows SDK 다음과 같은 최소 시스템 요구 사항이 있습니다.

지원되는 운영 체제

  • Windows 10 버전 1507 이상: Home, Professional, Education 및 Enterprise(UWP에는 LTSB 및 S가 지원되지 않음)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 및 Windows Server 2012 R2(명령줄에만 해당)
  • Windows 8.1
  • Windows 7 SP1

(이전 운영 체제에서 모든 도구가 지원되는 것은 아닙니다.)

하드웨어 요구 사항

  • 1.6GHz 이상의 프로세서
  • 1GB RAM
  • 4GB의 사용 가능한 하드 디스크 공간

추가 SDK 요구 사항

Windows 8.1 및 이전 운영 체제에 설치하려면 Windows에서 유니버설 C 런타임에 대한 업데이트가 필요합니다. Windows 업데이트 통해 설치하려면 Windows SDK 설치하기 전에 Microsoft 업데이트에서 권장되는 최신 업데이트 및 패치를 설치해야 합니다.

샘플

이제 GitHub를 통해 Windows 앱 샘플을 사용할 수 있습니다. GitHub에서 코드를 찾아보거나, Git에서 리포지토리의 개인 복사본을 복제하거나, 모든 샘플의 압축된 보관 파일을 다운로드 할 수 있습니다. 피드백을 환영하므로 문제가 있거나 질문이 있는 경우 리포지토리 내에서 문제를 자유롭게 열 수 있습니다. 이러한 샘플은 UWP(유니버설 Windows 플랫폼)를 지원하는 데스크톱, 모바일 및 향후 디바이스에서 실행되도록 설계되었습니다.

이전 SDK 버전

업데이트 세부 정보를 포함하여 이전에 릴리스된 SDK 및 에뮬레이터는 보관 페이지에서 찾을 수 있습니다.

API 켜기

새 API를 사용하는 경우 가장 광범위한 Windows 디바이스에서 올바르게 실행되도록 앱을 적응형으로 작성하는 것이 좋습니다. 적응형 앱은 디바이스 및 Windows 버전이 지원하는 모든 위치에서 새로운 기능으로 "켜지게"하지만, 그렇지 않으면 검색된 플랫폼 버전에서 사용할 수 있는 기능만 제공합니다. 구현 세부 정보는 버전 적응 코드 문서를 참조하세요.

릴리스 정보 및 알려진 문제

Windows 11 빌드 10.0.22621.3235(2024년 2월 29일 릴리스)

서비스 업데이트 10.0.22621.3235.

Windows 11 빌드 10.0.22621.2428(릴리스 날짜: 2023년 10월 24일)

서비스 업데이트 10.0.22621.2428.

Windows 11, 버전 22H2, 빌드 10.0.22621.1778

업데이트 10.0.22621.1778. 강조 표시된 기능은 다음과 같습니다.

  • WindowTabManager API를 사용하면 탭 인터페이스가 있는 애플리케이션에서 열려 있는 탭에 대한 정보를 Windows 셸에 제공할 수 있습니다.
  • HumanPresence API에 업데이트 사용 편의성을 개선하고 사람의 현재 상태 기능을 지원하는 센서에 대한 새로운 설정을 추가합니다.
  • RemoteDesktop API를 사용하면 애플리케이션이 원격 데스크톱과 로컬 데스크톱 간에 전환할 수 있습니다.
Windows 11 버전 22H2에 대한 Windows SDK
  • 서비스 업데이트 10.0.22621.755. VS 17.4 릴리스에 대한 ARM64 지원 포함
Windows 10 SDK, 버전 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을 포함해야 합니다.

  • Windows 10 WinRT API 팩을 사용하면 .NET Framework 4.5 이상 및 .NET Core 3.0 이상 라이브러리 및 앱에 최신 Windows 런타임 API 지원을 추가할 수 있습니다. Windows 10 WinRT API 팩에 액세스하려면 Microsoft.Windows.SDK.Contracts nuget 패키지를 참조하세요.

  • 이제 함수의 printf 제품군은 정확히 표현 가능한 부동 소수점 숫자를 인쇄할 때 IEEE 754 반올림 규칙을 준수 하며 fesetround 호출을 통해 요청된 반올림 모드를 적용합니다. 레거시 동작은 legacy_stdio_float_rounding.obj 연결할 때 사용할 수 있습니다.

  • Windows 앱 인증 키트. 앱 인증 키트 및 Windows 스토어의 지원되는 API 목록에 몇 가지 새 API가 추가되었습니다. 지원되는 목록에 회색으로 표시되거나 Visual Studio에서 사용하지 않도록 설정된 API가 있는 경우 원본 파일을 약간 변경하여 액세스할 수 있습니다. 자세한 내용은 이 알려진 문제를 참조하세요. 테스트에 대한 추가 업데이트를 찾습니다.

  • 메시지 컴파일러(mc.exe) 업데이트:

    • 이제 .mc 파일에서 BOM(유니코드 바이트 순서 표시)을 검색합니다. .mc 파일이 UTF-8 BOM으로 시작하는 경우 UTF-8 파일로 읽습니다. 그렇지 않으면 UTF-16LE BOM으로 시작하는 경우 UTF-16LE 파일로 읽습니다. -u 매개 변수를 지정한 경우 UTF-16LE 파일로 읽습니다. 그렇지 않으면 현재 코드 페이지(CP_ACP)를 사용하여 읽습니다.
    • 이제 충돌하는 구성 매크로로 인해 MC에서 생성된 C/C++ ETW 도우미의 ODR(일화 규칙) 문제를 방지합니다(예: MCGEN_EVENTWRITETRANSFER 정의가 충돌하는 두 개의 .cpp 파일이 동일한 이진 파일에 연결된 경우 MC에서 생성된 ETW 도우미는 이제 임의로 하나 또는 다른 파일을 선택하는 대신 각 .cpp 파일에서 MCGEN_EVENTWRITETRANSFER 정의를 준수합니다.)
  • Windows 추적 전처리기(tracewpp.exe) 업데이트:

    • 유니코드 입력(.ini, .tpl 및 소스 코드) 파일을 지원합니다. UTF-8 또는 UTF-16 BOM(바이트 순서 표시)으로 시작하는 입력 파일은 유니코드로 읽습니다. BOM으로 시작하지 않는 입력 파일은 현재 코드 페이지(CP_ACP)를 사용하여 읽습니다. 이전 버전과의 호환성을 위해 -UnicodeIgnore 명령줄 매개 변수를 지정하면 UTF-16 BOM으로 시작하는 파일이 비어 있는 것으로 처리됩니다.
    • 유니코드 출력(.tmh) 파일을 지원합니다. 기본적으로 출력 파일은 현재 코드 페이지(CP_ACP)를 사용하여 인코딩됩니다. 명령줄 매개 변수 -cp:UTF-8 또는 -cp:UTF-16을 사용하여 유니코드 출력 파일을 생성합니다.
    • 동작 변경: tracewpp는 이제 모든 입력 텍스트를 유니코드로 변환하고, 유니코드에서 처리를 수행하고, 출력 텍스트를 지정된 출력 인코딩으로 변환합니다. 이전 버전의 tracewpp는 유니코드 변환을 방지하고 단일 바이트 문자 집합을 가정하여 텍스트 처리를 수행했습니다. 이로 인해 입력 파일이 현재 코드 페이지를 준수하지 않는 경우 동작이 변경됩니다. 문제가 있는 경우 입력 파일을 UTF-8(BOM 포함)로 변환하거나 -cp:UTF-8 명령줄 매개 변수를 사용하여 인코딩 모호성을 방지하는 것이 좋습니다.
  • TraceLoggingProvider.h 업데이트:

    • 충돌하는 구성 매크로(예: TLG_EVENT_WRITE_TRANSFER 정의가 충돌하는 두 개의 .cpp 파일이 동일한 이진 파일에 연결된 경우, TraceLoggingProvider.h 도우미는 이제 하나 또는 다른 파일을 임의로 선택하는 대신 각 .cpp 파일에서 TLG_EVENT_WRITE_TRANSFER 정의를 존중합니다) 충돌하는 구성 매크로로 인한 ODR(정의 규칙) 문제를 방지합니다.
    • C++ 코드에서는 variadic 템플릿을 사용하여 유사한 이벤트 간에 코드 공유를 향상할 수 있도록 TraceLoggingWrite 매크로가 업데이트되었습니다.
  • 앱에 서명합니다. Device Guard 서명은 비즈니스용 Microsoft Store 및 교육에서 사용할 수 있는 Device Guard 기능으로, 기업은 모든 앱이 신뢰할 수 있는 원본에서 제공되도록 보장할 수 있습니다. Device Guard 서명에 대한 설명서를 참조하세요.

  • SDK 헤더는 MSVC 컴파일러 cl.exe 표준 준수 C 전처리기를 사용하여 컴파일할 때 오류를 해결하도록 업데이트되었습니다(/Zc:preprocessor, VS 2019 v16.6에 도입됨).

  • 수정됨: "GdiplusTypes.h는 NOMINMAX로 컴파일되지 않습니다." Visual Studio 피드백을 참조하세요.

  • /std:c11 또는 /std:c17을 사용하여 빌드할 때 다음을 얻을 수 있습니다.

    • C99 tgmath.h
    • assert.h의 C11 static_assert
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • ARM64를 대상으로 하는 Windows v11용 Clang/LLVM은 최신 winnt.h와 호환되지 않습니다.

    • 해결 방법으로 ARM64 플랫폼을 대상으로 하는 경우 이전 버전의 Windows 10 SDK(빌드 19041) 또는 Windows v10용 clang/LLVM을 사용합니다.
  • DirectXMath(이 릴리스의 버전 3.16 포함)는 ARM64의 Windows용 Clang/LLVM과 호환되지 않습니다.

  • 일부 헤더 파일의 경우 대/소문자를 구분하는 파일 시스템에 맞게 정규화하기 위해 변경되었습니다.

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h 및 OleCtl.h는 모두 소문자를 만들었습니다.
    • Windows 빌드용 Clang/LLVM의 경우 경고 없이 이전 버전과 최신 Windows 10 SDK를 모두 지원하려면 CLI에 를 추가 -Wno-nonportable-system-include-path 하거나 원본에서 다음 #pragma 추가합니다.

    #ifdef __clang__

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

    #endif

Windows 10 SDK, 버전 2004 서비스 업데이트(2020년 12월 16일 릴리스)

이 릴리스에는 다음 파일이 포함되어 있습니다. 이러한 문제가 발생하는 경우 SDK를 방지하려면 가능한 한 빨리 SDK 버전을 업데이트하는 것이 좋습니다.

  • 우산 라이브러리와 네이티브 OS 라이브러리(예: onecoreuap.lib 및 kernel32.lib)를 연결할 때 예측할 수 없고 진단하기 어려운 충돌을 해결했습니다.
  • AppVerifier가 작동하지 않는 해결된 문제
  • "Task에서 HighVersionLie를 사용하도록 설정하지 못했습니다."로 인해 WACK가 실패하는 문제를 해결했습니다.

추가 리소스