Zestaw SDK systemu Windows

Windows SDK (10.0.26100) 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 24H2 w wersji zapoznawczej i poprzednich wydań 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 udostępniane 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 w dół, aby Windows 10, wersja 1809.

Wprowadzenie

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

Ostatnia aktualizacja: maj 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 zainstalować za pośrednictwem Windows Update, przed zainstalowaniem Windows SDK upewnij się, że zainstalowano 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. Witamy opinię, więc możesz swobodnie 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.

API Light Up

W przypadku korzystania z nowych interfejsów API rozważ zapisanie aplikacji jako adaptacyjnej, tak aby była ona uruchamiana poprawnie na najszerszej tablicy urządzeń z systemem Windows. Aplikacja adaptacyjna "świeci" nowymi funkcjami, gdzie tylko urządzenia i wersja systemu Windows je obsługują, ale w przeciwnym razie oferuje tylko funkcje dostępne w wykrytej wersji platformy. Aby uzyskać szczegółowe informacje na temat implementacji, zobacz artykuł Wersja kodu adaptacyjnego.

Informacje o wersji i znane problemy

Windows 11, Build 10.0.26100 (wydano 5.22.2024)

Początkowa wersja serii 10.0.26100 odpowiadająca Windows 11 w wersji 24h2 (wersja zapoznawcza).

Windows 11, Build 10.0.22621.3235 (wydano 2.29.2024)

Aktualizacja obsługi 10.0.22621.3235.

Windows 11, Build 10.0.22621.2428 (wydano 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 Narzędzia WindowTabManager umożliwiają aplikacjom z interfejsami z kartami udostępnianie informacji na otwartych kartach powłoki 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 rozwiązania RemoteDesktop umożliwiają aplikacjom przełączanie się między pulpitem zdalnym i lokalnym.
Windows SDK dla Windows 11 w wersji 22H2
  • Aktualizacja obsługi 10.0.22621.755. Obejmuje obsługę usługi ARM64 dla wersji VS 17.4
zestaw SDK Windows 10 w wersji 2104
  • Usunięto plik api-ms-win-net-isolation-l1-1-0.lib. Aplikacje, które łączyły się z interfejsem API-ms-win-net-isolation-l1-1-0.lib, mogą przełączać się na t OneCoreUAP.lib jako zamiennik.

  • Usunięto plik irprops.lib. Aplikacje, które łączyły się z plikiem irprops.lib, mogą przełączyć się na plik bthprops.lib jako zamiennik.

  • 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ć element wuapi.h lub wuapi.idl.

  • Pakiet API WinRT Windows 10 umożliwia dodanie najnowszej obsługi interfejsów API środowisko wykonawcze systemu Windows do bibliotek i aplikacji .NET Framework 4.5+ i .NET Core 3.0 lub nowszych. Aby uzyskać dostęp do Windows 10 pakietu API WinRT, 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ń 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ługiwanych interfejsów API w zestawie certyfikacji aplikacji i sklepie Windows Store. Jeśli na liście obsługiwanych interfejsów API są wyświetlane 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 znak kolejności bajtów Unicode (BOM) w plikach .mc. Jeśli plik .mc rozpoczyna się od utF-8 BOM, zostanie odczytany 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 kodu (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 powodu konfliktów definicji MCGEN_EVENTWRITETRANSFER są połączone z tym samym binarnym, pomocnicy ETW wygenerowani przez MC będą teraz szanować 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 kodu źródłowego). 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 zaczynają się od modelu BOM, będą odczytywane przy użyciu bieżącej strony kodu (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 kodu (CP_ACP). Użyj parametrów wiersza polecenia -cp:UTF-8 lub -cp:UTF-16, aby wygenerować pliki wyjściowe Unicode.
    • Zmiana zachowania: 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ą kodu. W przypadkach, gdy jest to problem, rozważ przekonwertowanie plików wejściowych na utF-8 (z BOM) i/lub użycie parametru wiersza polecenia -cp:UTF-8, aby uniknąć niejednoznaczności kodowania.
  • Aktualizacje TraceLoggingProvider.h:

    • Unika 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 szanować definicję TLG_EVENT_WRITE_TRANSFER w każdym pliku .cpp zamiast arbitralnie wybierać jeden lub drugi).
    • W kodzie C++ makro TraceLoggingWrite zostało zaktualizowane, aby umożliwić lepsze udostępnianie kodu między podobnymi zdarzeniami przy użyciu szablonów variadycznych.
  • Podpisywanie aplikacji. Podpisywanie funkcji Device Guard to funkcja Device Guard dostępna w 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 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