Zestaw SDK systemu Windows

Zestaw Windows SDK (10.0.22621) dla Windows 11, wersja 22H2 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, wersji 22H2 i poprzednich wersji 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

Zestaw SDK systemu Windows można uzyskać na dwa sposoby: zainstaluj go 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: maj 2023 r.

Wymagania systemowe

Zestaw 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 zestawu 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, 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.
Zestaw 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
Windows 10 SDK, wersja 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 konfliktem definicji MCGEN_EVENTWRITETRANSFER są połączone z tym samym plikiem binarnym, pomocnicy ETW generowane 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łą jednodefiniowania (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
  • Maszyny Clang/LLVM dla systemu Windows w wersji 11 przeznaczonej dla usługi ARM64 nie są zgodne z najnowszą wersją winnt.h

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

  • Sprawa niektórych plików nagłówkowych została zmieniona, aby znormalizować je 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łymi literami.
    • W przypadku kompilacji Clang/LLVM dla systemu Windows w celu obsługi zarówno starszej wersji, jak i najnowszego 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 nieprzewidywalne i trudne do zdiagnozowania 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 modułu AppVerifier
  • Rozwiązano problem powodujący niepowodzenie usługi WACK z komunikatem "Zadanie nie powiodło się, aby włączyć funkcję HighVersionLie"

Więcej zasobów