Zestaw SDK systemu Windows

Windows SDK (10.0.22621) dla Windows 11 udostępnia najnowsze nagłówki, biblioteki, metadane i narzędzia do tworzenia aplikacji systemu Windows. Ten zestaw SDK umożliwia tworzenie aplikacji platforma uniwersalna systemu Windows (UWP) i Win32 dla Windows 11 w wersji 23H2 i poprzednich wersjach systemu Windows.

Porada

Zestaw SDK aplikacji systemu Windows
Windows App SDK udostępnia ujednolicony zestaw interfejsów API i narzędzi, które są oddzielone od systemu operacyjnego i wydawane deweloperom za pośrednictwem pakietów NuGet. Te interfejsy API i narzędzia mogą być używane w spójny sposób przez dowolną aplikację klasyczną w Windows 11 i na poziomie downlevel w celu Windows 10, wersja 1809.

Wprowadzenie

Możesz uzyskać Windows SDK na dwa sposoby: zainstalować ją na tej stronie, wybierając link pobierania lub wybierając pozycję "Windows 11 SDK (10.0.22621.0)" w opcjonalnych składnikach Instalatora programu Visual Studio 2022. Przed zainstalowaniem tego zestawu SDK:

Ostatnia aktualizacja: luty 2024 r.

Wymagania systemowe

Windows SDK ma następujące minimalne wymagania systemowe:

Obsługiwane systemy operacyjne

  • Windows 10 w wersji 1507 lub nowszej: Home, Professional, Education i Enterprise (LTSB i S nie są obsługiwane dla platformy UWP)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 i Windows Server 2012 R2 (tylko wiersz polecenia)
  • Windows 8.1
  • Windows 7 z dodatkiem SP1

(Nie wszystkie narzędzia są obsługiwane we wcześniejszych systemach operacyjnych)

Wymagania sprzętowe

  • Procesor 1,6 GHz lub szybszy
  • 1 GB pamięci RAM
  • 4 GB dostępnego miejsca na dysku twardym

Dodatkowe wymagania dotyczące zestawu SDK

Instalacja w Windows 8.1 i starszych systemach operacyjnych wymaga aktualizacji uniwersalnego środowiska uruchomieniowego języka C w systemie Windows. Aby przeprowadzić instalację za pośrednictwem Windows Update, przed zainstalowaniem Windows SDK zainstaluj najnowsze zalecane aktualizacje i poprawki z usługi Microsoft Update.

Przykłady

Przykłady aplikacji systemu Windows są teraz dostępne za pośrednictwem usługi GitHub. Możesz przeglądać kod w usłudze GitHub, sklonować osobistą kopię repozytorium z repozytorium Git lub pobrać spakowane archiwum wszystkich przykładów. Zachęcamy do przesyłania opinii, więc możesz otworzyć problem w repozytorium, jeśli masz problem lub pytanie. Te przykłady są przeznaczone do uruchamiania na komputerach, urządzeniach przenośnych i przyszłych urządzeniach, które obsługują platforma uniwersalna systemu Windows (UWP).

Poprzednie wersje zestawu SDK

Wcześniej wydane zestawy SDK i emulatory, w tym szczegóły aktualizacji, można znaleźć na stronie archiwum.

Interfejs API rozświetla

W przypadku korzystania z nowych interfejsów API rozważ zapisanie aplikacji w celu adaptacyjnego działania, aby była ona uruchamiana poprawnie na najszerszej tablicy urządzeń z systemem Windows. Adaptacyjna aplikacja "zapala się" z nowymi funkcjami wszędzie tam, gdzie są obsługiwane urządzenia i wersja systemu Windows, ale w przeciwnym razie oferuje tylko funkcje dostępne w wykrytej wersji platformy. Aby uzyskać szczegółowe informacje o implementacji, zobacz artykuł Wersja kodu adaptacyjnego.

Informacje o wersji i znane problemy

Windows 11, Build 10.0.22621.3235 (wydanie 2.29.2024)

Aktualizacja obsługi 10.0.22621.3235.

Windows 11, Build 10.0.22621.2428 (wydana 10.24.2023)

Aktualizacja obsługi 10.0.22621.2428.

Windows 11, wersja 22H2, kompilacja 10.0.22621.1778

Aktualizacja 10.0.22621.1778. Wyróżnione funkcje obejmują:

  • Interfejsy API WindowTabManager umożliwiają aplikacjom z interfejsami z kartami udostępnianie informacji na otwartych kartach w powłoce systemu Windows.
  • Aktualizacje do interfejsów API HumanPresence, aby zwiększyć łatwość użytkowania i dodać nowe ustawienia czujników, które obsługują możliwości ludzkiej obecności.
  • Interfejsy API RemoteDesktop umożliwiają aplikacjom przełączanie się między pulpitem zdalnym i lokalnym.
Windows SDK dla Windows 11, wersja 22H2
  • Aktualizacja obsługi 10.0.22621.755. Obejmuje obsługę architektury ARM64 dla wersji VS 17.4
zestaw SDK Windows 10 w wersji 2104
  • Usunięto interfejs API-ms-win-net-isolation-l1-1-0.lib. Aplikacje łączące się z interfejsem api-ms-win-net-isolation-l1-1-0.lib nie mogą przełączyć biblioteki OneCoreUAP.lib jako zastępczej.

  • Usunięto plik irprops.lib. Aplikacje, które łączyły się z biblioteką irprops.lib, mogą przełączyć się do pliku bthprops.lib jako zamiany drop-in.

  • Przeniesiono tag ENUMServerSelection z pliku wuapicommon.h do pliku wupai.h i usunięto nagłówek. Jeśli chcesz użyć tagu ENUMServerSelection, musisz dołączyć plik wuapi.h lub wuapi.idl.

  • Pakiet API Pack Windows 10 WinRT umożliwia dodanie najnowszych interfejsów API środowisko wykonawcze systemu Windows do .NET Framework 4.5 lub nowszych oraz bibliotek i aplikacji platformy .NET Core 3.0+. Aby uzyskać dostęp do pakietu interfejsu API WinRT Windows 10, zobacz pakiet nuget Microsoft.Windows.SDK.Contracts.

  • Rodzina funkcji printf jest teraz zgodna z regułami zaokrąglania IEEE 754 podczas drukowania dokładnie reprezentujących liczby zmiennoprzecinkowe i będzie honorować tryb zaokrąglania żądany za pośrednictwem wywołań do fesetround. Starsze zachowanie jest dostępne podczas łączenia z legacy_stdio_float_rounding.obj.

  • Zestaw certyfikacji aplikacji systemu Windows. Kilka nowych interfejsów API zostało dodanych do listy Obsługiwane interfejsy API w zestawie certyfikacji aplikacji i Sklepie Windows. Jeśli na liście obsługiwanych są interfejsy API, które są wyszarzone lub wyłączone w programie Visual Studio, możesz wprowadzić niewielką zmianę w pliku źródłowym, aby uzyskać do nich dostęp. Aby uzyskać więcej informacji, zobacz ten znany problem. Znajdź więcej aktualizacji testów.

  • Aktualizacje kompilatora komunikatów (mc.exe):

    • Teraz wykrywa znacznik kolejności bajtów Unicode (BOM) w plikach mc. Jeśli plik .mc rozpoczyna się od formatu UTF-8 BOM, będzie on odczytywany jako plik UTF-8. W przeciwnym razie, jeśli rozpoczyna się od utF-16LE BOM, zostanie odczytany jako plik UTF-16LE. Jeśli określono parametr -u, będzie on odczytywany jako plik UTF-16LE. W przeciwnym razie zostanie odczytany przy użyciu bieżącej strony kodowej (CP_ACP).
    • Teraz unika problemów z regułą jednej definicji (ODR) w pomocnikach ETW generowanych przez mc/C++ spowodowanych konfliktem makr konfiguracji (np. gdy dwa pliki .cpp z definicjami konfliktów MCGEN_EVENTWRITETRANSFER są połączone z tym samym plikiem binarnym, pomocnicy ETW generowane przez mc będą teraz uwzględniać definicję MCGEN_EVENTWRITETRANSFER w każdym pliku .cpp zamiast arbitralnie wybierać jeden lub drugi).
  • Aktualizacje preprocesora śledzenia systemu Windows (tracewpp.exe):

    • Obsługuje pliki wejściowe Unicode (.ini, tpl i kod źródłowy). Pliki wejściowe rozpoczynające się od utF-8 lub UTF-16 byte order mark (BOM) będą odczytywane jako Unicode. Pliki wejściowe, które nie rozpoczynają się od modelu BOM, będą odczytywane przy użyciu bieżącej strony kodowej (CP_ACP). W przypadku zgodności z poprzednimi wersjami, jeśli określono parametr wiersza polecenia -UnicodeIgnore, pliki rozpoczynające się od modelu UTF-16 BOM będą traktowane jako puste.
    • Obsługuje pliki wyjściowe Unicode (tmh). Domyślnie pliki wyjściowe będą kodowane przy użyciu bieżącej strony kodowej (CP_ACP). Użyj parametrów wiersza polecenia -cp:UTF-8 lub -cp:UTF-16, aby wygenerować pliki wyjściowe Unicode.
    • Zmiana zachowania: funkcja tracewpp konwertuje teraz cały tekst wejściowy na Unicode, wykonuje przetwarzanie w formacie Unicode i konwertuje tekst wyjściowy na określone kodowanie wyjściowe. Wcześniejsze wersje tracewpp unikały konwersji Unicode i przetwarzały tekst przy założeniu, że zestaw znaków jednobajtowych. Może to prowadzić do zmian zachowania w przypadkach, gdy pliki wejściowe nie są zgodne z bieżącą stroną kodową. W przypadkach, gdy jest to problem, rozważ przekonwertowanie plików wejściowych na UTF-8 (z BOM) i/lub użycie parametru -cp:UTF-8 wiersza polecenia, aby uniknąć niejednoznaczności kodowania.
  • Aktualizacje TraceLoggingProvider.h:

    • Pozwala uniknąć problemów z regułą jednej definicji (ODR) spowodowanych konfliktem makr konfiguracji (np. gdy dwa pliki .cpp z definicjami powodującymi konflikty TLG_EVENT_WRITE_TRANSFER są połączone z tym samym plikiem binarnym, pomocnicy TraceLoggingProvider.h będą teraz uwzględniać definicję TLG_EVENT_WRITE_TRANSFER w każdym pliku .cpp zamiast arbitralnie wybierać jeden lub drugi).
    • W kodzie C++ makro TraceLoggingWrite zostało zaktualizowane w celu umożliwienia lepszego udostępniania kodu między podobnymi zdarzeniami przy użyciu szablonów wariadycznych.
  • Podpisywanie aplikacji. Podpisywanie funkcji Device Guard to funkcja Device Guard dostępna w usługach Microsoft Store dla Firm i Education, która umożliwia przedsiębiorstwom zagwarantowanie, że każda aplikacja pochodzi z zaufanego źródła. Zapoznaj się z dokumentacją dotyczącą podpisywania funkcji Device Guard.

  • Nagłówki zestawu SDK zostały zaktualizowane w celu rozwiązania błędów podczas kompilowania przy użyciu standardowego preprocesora języka C w kompilatorze MSVC cl.exe (/Zc:preprocessor, wprowadzony w programie VS 2019 w wersji 16.6).

  • Naprawiono: "GdiplusTypes.h nie kompiluje się z NOMINMAX". Zobacz Opinie dotyczące programu Visual Studio.

  • Podczas kompilowania za pomocą polecenia /std:c11 lub /std:c17 uzyskujesz teraz:

    • C99 tgmath.h
    • C11 static_assert w pliku assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM for Windows v11 target ARM64 nie jest zgodny z najnowszą wersją winnt.h

    • Aby obejść ten problem, użyj poprzedniej wersji zestawu SDK Windows 10 (kompilacja 19041) lub narzędzia clang/LLVM dla systemu Windows w wersji 10 podczas określania platform ARM64
  • Funkcja DirectXMath (w tym wersja 3.16 w tej wersji) nie jest zgodna z maszyną Clang/LLVM dla systemu Windows w architekturze ARM64.

  • W przypadku niektórych plików nagłówkowych zmieniono je w celu normalizacji ich w systemach plików z uwzględnieniem wielkości liter:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h i OleCtl.h zostały wykonane małe litery.
    • W przypadku kompilacji Clang/LLVM dla systemu Windows w celu obsługi zarówno starszej wersji, jak i najnowszej wersji zestawu SDK Windows 10 bez ostrzeżeń, dodaj -Wno-nonportable-system-include-path do interfejsu wiersza polecenia lub następujące #pragma w źródle:

    #ifdef __clang__

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

    #endif

Windows 10 SDK, aktualizacja obsługi wersji 2004 (wydana 12/16/2020)

Ta wersja zawiera następujące pliki. Jeśli wystąpią te problemy, zalecamy jak najszybsze zaktualizowanie wersji zestawu SDK w celu ich uniknięcia:

  • Rozwiązano problem nieprzewidywalny i trudny do diagnozowania awarii podczas łączenia bibliotek parasolowych i natywnych bibliotek systemu operacyjnego (na przykład onecoreuap.lib i kernel32.lib)
  • Rozwiązano problem uniemożliwiający działanie elementu AppVerifier
  • Rozwiązano problem powodujący niepowodzenie usługi WACK z komunikatem "Zadanie nie powiodło się, aby włączyć element HighVersionLie"

Więcej zasobów