Windows SDK - co zawiera i jak dobrać wersję do projektu?

Bruno Krawczyk 2 czerwca 2026
Zarządzanie pakietami NuGet dla rozwiązania, wyszukiwanie Microsoft.WindowsAppSDK.

Spis treści

Budujesz aplikację desktopową i zastanawiasz się, skąd wziąć nagłówki, biblioteki oraz narzędzia potrzebne do pracy z Windows? Windows Software Development Kit, najczęściej skracany do Windows SDK, dostarcza właśnie te elementy. Pokażę, co zawiera, czym różni się od .NET SDK i Windows App SDK, jak zainstalować go w Visual Studio oraz jak dobrać wersję do aplikacji Win32, WPF, Windows Forms lub WinUI 3.

Windows SDK daje dostęp do platformy Windows podczas kompilacji

  • Zawartość obejmuje nagłówki, biblioteki, metadane, narzędzia budowania i dokumentację API.
  • Windows SDK jest potrzebny głównie do korzystania z Win32, WinRT, COM, DirectX i funkcji systemowych.
  • .NET SDK służy do budowania projektów .NET, a Windows SDK udostępnia natywne możliwości systemu Windows.
  • Windows App SDK dodaje nowoczesne API, WinUI 3, zarządzanie oknami, cyklem życia aplikacji i powiadomieniami.
  • Wersja SDK wpływa na API dostępne podczas kompilacji, ale nie określa samodzielnie minimalnej wersji Windows.

Diagram pokazuje, jak aplikacje korzystające z Windows App SDK Framework Package automatycznie aktualizują się przy ponownym uruchomieniu, pobierając nowszą wersję.

Co dokładnie zawiera Windows SDK

Najprościej myśleć o Windows SDK jak o warstwie, która pozwala kompilatorowi rozmawiać z systemem operacyjnym. Znajdują się w nim pliki nagłówkowe, biblioteki linkera, metadane WinRT, narzędzia oraz komponenty potrzebne do budowania aplikacji dla Windows.

Pliki nagłówkowe opisują dostępne funkcje, typy i interfejsy. Biblioteki pozwalają połączyć program z odpowiednimi mechanizmami systemu, a narzędzia wspierają między innymi kompilację, podpisywanie pakietów i analizę aplikacji. W praktyce większość programistów nie uruchamia tych elementów ręcznie, ponieważ robi to za nich Visual Studio i MSBuild.

Przeczytaj również: PowerShell w Windows - podstawy i automatyzacja

Najważniejsze obszary zastosowania

  • Win32 pozwala tworzyć klasyczne aplikacje desktopowe, korzystające bezpośrednio z API Windows.
  • WinRT udostępnia nowocześniejszy model API, między innymi dla powiadomień, urządzeń, multimediów i integracji z systemem.
  • COM służy do komunikacji z wieloma starszymi i nadal używanymi komponentami Windows.
  • DirectX jest podstawą aplikacji graficznych, multimedialnych i gier.
  • MSIX oraz narzędzia pakowania pomagają przygotować aplikację do dystrybucji i instalacji.

Istotna rzecz często umyka początkującym. Windows SDK jest przede wszystkim narzędziem deweloperskim, a nie biblioteką, którą automatycznie dołącza się do instalatora programu. Nagłówki i biblioteki są wykorzystywane podczas budowania, natomiast podstawowe API Win32, WinRT i COM dostarcza system użytkownika.

Windows SDK, .NET SDK i Windows App SDK to różne elementy

Te nazwy brzmią podobnie, dlatego łatwo uznać je za trzy wersje tego samego produktu. Sam rozdzielam je według odpowiedzi na pytanie, co dany komponent wnosi do projektu.

Komponent Do czego służy Kiedy go potrzebujesz
Windows SDK Udostępnia natywne API Windows, nagłówki, biblioteki, metadane i narzędzia Gdy aplikacja korzysta z Win32, WinRT, COM, DirectX lub funkcji systemowych
.NET SDK Zawiera kompilator C#, dotnet CLI, MSBuild, szablony i narzędzia .NET Przy projektach WPF, Windows Forms, .NET MAUI i innych aplikacjach .NET
Windows App SDK Dodaje nowoczesne API desktopowe, WinUI 3, cykl życia aplikacji i obsługę okien Przy nowych aplikacjach WinUI 3 oraz modernizacji istniejących programów
Visual Studio Zapewnia środowisko pracy, debuger, projektant i konfigurację narzędzi Gdy chcesz wygodnie tworzyć, testować i wdrażać aplikację
Windows App SDK nie zastępuje platformowego SDK. Buduje się na jego możliwościach i dostarcza dodatkową warstwę dla aplikacji desktopowych. Microsoft Learn opisuje dziś Windows App SDK z WinUI 3 jako rekomendowaną ścieżkę dla nowych natywnych aplikacji Windows, ale nie oznacza to konieczności przepisywania każdego istniejącego programu WPF lub Windows Forms.

W projekcie .NET możesz więc jednocześnie używać .NET SDK do kompilacji kodu C#, Windows SDK do dostępu do API systemu i Windows App SDK do nowoczesnych funkcji interfejsu. To trzy uzupełniające się elementy, a nie konkurencyjne instalatory.

Jak zainstalować zestaw do aplikacji desktopowych

Najwygodniejsza droga prowadzi przez Visual Studio Installer. Przy instalacji lub modyfikacji Visual Studio wybierz obciążenie „Programowanie aplikacji klasycznych .NET”, jeśli tworzysz WPF albo Windows Forms. Dla projektów C++ wybierz „Programowanie aplikacji klasycznych w języku C++”. Odpowiedni Windows SDK powinien pojawić się wśród składników instalacji.
  1. Uruchom Visual Studio Installer i wybierz instalację lub modyfikację Visual Studio.
  2. Zaznacz obciążenie odpowiadające technologii projektu.
  3. W sekcji pojedynczych składników sprawdź, czy wybrano Windows SDK.
  4. Zainstaluj komponenty i uruchom ponownie Visual Studio.
  5. Utwórz projekt testowy i sprawdź, czy kompiluje się bez błędów środowiska.

Osobny instalator Windows SDK ma sens na maszynie buildowej, w automatyzacji CI/CD albo wtedy, gdy pracujesz głównie z narzędziami wiersza poleceń. W typowym projekcie .NET nie instalowałbym go ręcznie bez potrzeby, bo Visual Studio potrafi dobrać kompatybilny składnik razem z resztą środowiska.

Po instalacji warto wykonać prostą kontrolę. Polecenie dotnet --info pokaże środowisko .NET, a ustawienia projektu w Visual Studio pozwolą sprawdzić wybraną wersję platformy Windows. W przypadku C++ komunikat o braku Windows SDK zwykle oznacza, że projekt wskazuje wersję, której nie zainstalowano.

Jak dobrać wersję SDK do projektu

Numer SDK nie jest tym samym co numer wersji systemu zainstalowanego u użytkownika. Windows SDK określa przede wszystkim powierzchnię API dostępną podczas kompilacji, natomiast rzeczywiste możliwości w czasie działania zależą od wersji Windows na komputerze odbiorcy.

W 2026 roku dokumentacja Microsoftu wskazuje linię 10.0.28000 jako najnowszą rodzinę SDK dla Windows 11. W wielu projektach nadal uzasadnione może być użycie starszej, stabilnej wersji, szczególnie gdy aplikacja musi obsługiwać określone środowiska firmowe albo starszy system operacyjny.

Sytuacja Rozsądne podejście
Nowa aplikacja tylko dla aktualnych systemów Windows Użyj najnowszego stabilnego SDK i testuj na wspieranych wersjach systemu
Aplikacja dla Windows 10 i Windows 11 Ustaw minimalną wersję systemu osobno i sprawdzaj dostępność nowszych API w czasie działania
Istniejący projekt WPF lub Windows Forms Nie zmieniaj SDK bez potrzeby; aktualizację poprzedź testami i sprawdzeniem zależności
Eksperymentalne API Używaj kanału preview tylko w osobnej gałęzi lub projekcie testowym

Przykładowy projekt .NET może wyglądać tak:


  net10.0-windows10.0.26100.0
  10.0.19041.0

Pierwsza wartość mówi, z jaką platformą Windows projekt jest kompilowany, a druga określa najstarszą wersję systemu, którą deklarujesz jako wspieraną. Jeżeli używasz API wprowadzonego dopiero w nowszym wydaniu, dodaj sprawdzenie dostępności API albo zastosuj odpowiednią adnotację platformową. Sam fakt, że kod się kompiluje, nie gwarantuje jeszcze działania na starszym Windows.

Win32, WPF, Windows Forms czy WinUI 3

Windows SDK nie narzuca jednego frameworka interfejsu. To dobra wiadomość, bo możesz dobrać technologię do wieku projektu, oczekiwanego wyglądu i kompetencji zespołu.

Technologia Mocne strony Ograniczenia
Win32 Pełna kontrola, wysoka wydajność i dostęp do najniższej warstwy Windows Więcej kodu, trudniejsza obsługa interfejsu i większy koszt utrzymania
Windows Forms Szybkie tworzenie formularzy biznesowych i prosty model programowania Starszy model UI i mniejsze możliwości nowoczesnego wyglądu
WPF Dojrzały XAML, wiązanie danych, style i dobra integracja z .NET Technologia desktopowa o ograniczonym celu międzyplatformowym
WinUI 3 Nowoczesny interfejs, XAML i integracja z Windows App SDK Więcej decyzji wdrożeniowych oraz konieczność testowania środowiska uruchomieniowego

Do nowego programu użyłbym WinUI 3, gdy priorytetem jest nowoczesny interfejs i ścisła integracja z Windows. Do wewnętrznego narzędzia biznesowego WPF nadal bywa praktyczniejszy, szczególnie gdy zespół ma gotowe komponenty i rozbudowany kod. Przepisywanie działającej aplikacji tylko dla modniejszego frameworka rzadko jest dobrą inwestycją.

Typowe błędy podczas pracy z Windows SDK

Najczęstsze problemy nie wynikają z samego API, lecz z niespójnej konfiguracji projektu. Warto rozpoznawać je po komunikacie, zamiast od razu reinstalować całe Visual Studio.
Problem Prawdopodobna przyczyna Co sprawdzić
MSB8036 Brak wskazanej wersji Windows SDK Składniki Visual Studio i ustawienia projektu
C1083 lub brak pliku nagłówkowego Niepoprawna ścieżka albo niepełna instalacja Wybrany zestaw narzędzi i katalogi include
Unresolved external symbol Brak biblioteki linkera lub niezgodna konfiguracja x86/x64 Biblioteki SDK, platformę docelową i konfigurację Debug/Release
Aplikacja działa na nowym komputerze, ale nie na starszym Użycie API niedostępnego w starszym systemie Minimalną wersję Windows i kontrolę dostępności API
Problemy z WinUI 3 Brak lub niezgodna wersja Windows App SDK Pakiety NuGet, model wdrożenia i wymagane składniki systemowe

Osobno traktuję jeszcze błąd polegający na utożsamianiu SDK z runtime'em. Aktualizacja Windows SDK nie naprawi brakującego środowiska .NET, a instalacja .NET SDK nie doda automatycznie wszystkich natywnych bibliotek Windows. Ta granica oszczędza sporo czasu podczas diagnozowania buildów na serwerze.

Co trafia do aplikacji po kompilacji

W przypadku klasycznego Win32, WPF lub Windows Forms większość funkcji systemowych jest wywoływana z bibliotek obecnych w Windows. Do aplikacji trafia więc przede wszystkim kod programu i jego zależności, a nie cały Windows SDK.

Inaczej wygląda sytuacja z Windows App SDK. W zależności od modelu wdrożenia możesz korzystać ze wspólnego runtime'u framework-dependent albo dołączyć wymagane składniki w modelu self-contained. Pierwszy wariant ogranicza rozmiar wielu aplikacji na jednej maszynie, drugi daje większą kontrolę nad wersją zależności, ale zwiększa rozmiar pakietu.

Przed publikacją sprawdź aplikację na czystej maszynie testowej. Komputer deweloperski ma zwykle zainstalowane Visual Studio, SDK, debugery i dodatkowe runtime'y, dlatego potrafi ukryć brak zależności, który użytkownik zobaczy natychmiast po instalacji.

Dobry punkt startu dla aplikacji Windows

Jeżeli tworzę nowy program desktopowy w C#, zaczynam od .NET SDK, Visual Studio i stabilnego Windows SDK. WinUI 3 oraz Windows App SDK wybieram wtedy, gdy potrzebuję nowoczesnego interfejsu lub funkcji systemowych, natomiast dla dojrzałego projektu WPF albo Windows Forms najpierw oceniam korzyść biznesową, a dopiero później rozważam migrację.

Najważniejsza praktyczna zasada brzmi: kompiluj na możliwie aktualnym SDK, ale świadomie ustaw minimalny system docelowy. Dzięki temu możesz korzystać z nowych możliwości bez przypadkowego odcinania użytkowników starszych, nadal wspieranych instalacji Windows.

Sam instalator to dopiero początek. O jakości aplikacji decydują później testy na różnych wersjach systemu, kontrola dostępności API, poprawne pakowanie oraz sprawdzenie działania poza maszyną deweloperską.

FAQ - Najczęstsze pytania

Windows SDK udostępnia natywne API Windows, nagłówki, biblioteki, metadane i narzędzia. .NET SDK zawiera kompilator C#, dotnet CLI, MSBuild i szablony, a Windows App SDK dodaje między innymi WinUI 3, obsługę okien i cykl życia aplikacji. W jednym projekcie można używać wszystkich tych komponentów jednocześnie.

W Visual Studio Installer wybierz obciążenie Programowanie aplikacji klasycznych .NET dla WPF lub Windows Forms albo Programowanie aplikacji klasycznych w języku C++ dla projektów C++. Następnie w sekcji pojedynczych składników sprawdź, czy zaznaczono Windows SDK. Po instalacji utwórz projekt testowy i sprawdź, czy kompiluje się bez błędów środowiska.

Nie. SDK określa przede wszystkim powierzchnię API dostępną podczas kompilacji, a minimalną wersję systemu ustawia się osobno. Projekt może kompilować się z nowszym SDK i nadal wspierać starszy Windows, ale użycie nowszego API wymaga sprawdzenia jego dostępności w czasie działania.

Win32 daje pełną kontrolę i dostęp do najniższej warstwy systemu, lecz wymaga więcej kodu. Windows Forms sprawdza się przy prostych formularzach biznesowych, a WPF oferuje dojrzały XAML i wiązanie danych. WinUI 3 warto rozważyć przy nowej aplikacji z nowoczesnym interfejsem i ścisłą integracją z Windows, ale działającego projektu WPF lub Windows Forms nie trzeba migrować bez wyraźnej korzyści.

Oceń artykuł

Ocena: 0.00 Liczba głosów: 0

Tagi

wpf
windows forms
windows sdk
winui 3
msbuild
Autor Bruno Krawczyk
Bruno Krawczyk
Mam na imię Bruno i od 8 lat zgłębiam tajniki programowania w ekosystemie .NET, chmury Azure oraz sztucznej inteligencji. Moja przygoda z technologią zaczęła się od ciekawości, jak złożone systemy mogą ułatwiać codzienne życie i rozwiązywać realne problemy. Dziś moją misją jest dzielenie się tą wiedzą, starając się przybliżyć nawet najbardziej skomplikowane zagadnienia w sposób zrozumiały i przystępny dla każdego. W moich artykułach na kursdotnet.pl skupiam się na praktycznych aspektach, analizuję najnowsze trendy i weryfikuję informacje, aby dostarczyć Wam treści, które są nie tylko dokładne i aktualne, ale przede wszystkim użyteczne w Waszej własnej ścieżce rozwoju technologicznego.

Udostępnij artykuł

Napisz komentarz