Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas tworzenia aplikacji Windows zauważysz odwołania do kilku różnych numerów wersji — wersji systemu operacyjnego Windows, zestawu SDK Windows i Zestaw SDK do aplikacji systemu Windows. Nie martw się: w przypadku większości nowych projektów Visual Studio ustawia rozsądne wartości domyślne i w ogóle nie trzeba o tym myśleć. Jeśli jednak musisz określić określoną wersję systemu operacyjnego, zrozumieć, dlaczego interfejs API nie jest dostępny lub skonfigurować plik projektu, w tym artykule wyjaśniono, jak elementy pasują do siebie i jakie opcje należy wybrać.
Definitions
| Component | Co to jest | Format wersji | Jak jest aktualizowana |
|---|---|---|---|
| wersja systemu operacyjnego Windows | System operacyjny zainstalowany na urządzeniu użytkownika. |
YYHX (np. 24H2, 25H2) |
Windows Update (roczne aktualizacje funkcji) |
| Windows SDK (SDK platformy) | Nagłówki, biblioteki i metadane dla interfejsów API Win32, WinRT i COM. |
10.0.BBBBB.x (np. 10.0.26100.0) |
Instalowany za pomocą programu Visual Studio lub samodzielnego instalatora |
| Zestaw SDK do aplikacji systemu Windows | Platforma rozproszona nuGet zapewniająca winUI 3, cykl życia aplikacji, okna i inne nowoczesne funkcje aplikacji. |
Major.Minor.Patch (np. 1.8.1) |
Aktualizacja pakietu NuGet w projekcie |
Nazewnictwo wersji systemu operacyjnego Windows
Windows 11 dostarcza główne aktualizacje funkcji przy użyciu wzorca nazewnictwa YYHX:
- YYY = dwucyfrowy rok kalendarzowy
- H1 = pierwsza połowa roku; H2 = druga połowa roku
Większość głównych wydań została historycznie dostarczona jesienią (H2), ale występują również wersje H1.
| Wersja systemu operacyjnego Windows | Rok wydania | Numer kompilacji systemu operacyjnego |
|---|---|---|
| Windows 11 22H2 | 2022 | 22621 |
| Windows 11 23H2 | 2023 | 22631 |
| Windows 11 24H2 | 2024 | 26100 |
Zasada: Numer kompilacji systemu na urządzeniu użytkownika określa, które interfejsy API platformy są dostępne w czasie działania.
Wskazówka
Sprawdź numer kompilacji systemu operacyjnego na dowolnym urządzeniu, naciskając klawisze Win + R i wpisując .winver
mapowanie wersji zestawu SDK Windows na system operacyjny
Każda rodzina wersji zestawu SDK Windows odpowiada wersji systemu operacyjnego Windows. Główny numer kompilacji zestawu SDK jest zwykle zgodny z numerem kompilacji systemu operacyjnego, choć niektóre aktualizacje funkcji systemu operacyjnego (dostarczane jako pakiety włączania) współużytkują tę samą rodzinę zestawów SDK co poprzednia wersja.
| Rodzina zestawów SDK Windows | Kompilacja systemu operacyjnego | Pasuje do wersji Windows |
|---|---|---|
| 10.0.22621.x | 22621 | Windows 11 22H2/ 23H2 |
| 10.0.26100.x | 26100 | Windows 11 24H2 |
Note
W rodzinie zestawów SDK ostatni składnik (np. 10.0.26100.2454) oznacza comiesięczne aktualizacje serwisowe, które wprowadzają poprawki błędów, ale nie nowe interfejsy API.
Reguły: Zainstalowanie danego zestawu SDK Windows zapewnia dostęp w czasie kompilacji do wszystkich interfejsów API z tej wersji systemu operacyjnego i wszystkich wcześniejszych wersji. Interfejsy API mają charakter kumulatywny.
Wersje zestawu SDK aplikacji systemu Windows
Zestaw SDK do aplikacji systemu Windows jest niezależny zarówno od systemu operacyjnego Windows, jak i zestawu WINDOWS SDK. Jest wydawany we własnym cyklu jako pakiet NuGet.
| Zestaw SDK do aplikacji systemu Windows | Data wydania | Minimalna obsługiwana wersja systemu operacyjnego | Pakiet NuGet |
|---|---|---|---|
| 2,2 | 2026-06-09 | Windows 10 1809 (kompilacja 17763) | Microsoft.WindowsAppSDK 2.2.x |
| 2.1 | 2026-05-21 | Windows 10 1809 (kompilacja 17763) | Microsoft.WindowsAppSDK 2.1.x |
| 2.0 | 2026-04-29 | Windows 10 1809 (kompilacja 17763) | Microsoft.WindowsAppSDK 2.0.x |
| 1.8 | 2025-09-09 | Windows 10 1809 (kompilacja 17763) | Microsoft.WindowsAppSDK 1.8.x |
| 1.7 | 2025-03-18 | Windows 10 1809 (kompilacja 17763) | Microsoft.WindowsAppSDK 1.7.x |
Reguły: Najnowsze Zestaw SDK do aplikacji systemu Windows można używać w starszych wersjach systemu operacyjnego (z powrotem do określonego minimum). Wersja Zestaw SDK do aplikacji systemu Windows nie musi być zgodna z wersją systemu operacyjnego Windows lub wersją zestawu WINDOWS SDK.
Aby uzyskać pełną macierz zgodności, zobacz Obsługiwane wersje systemu Windows dla pakietu Zestaw SDK do aplikacji systemu Windows.
Jak odnoszą się trzy składniki
Your App (.exe / .msix)
│
├── References: Windows App SDK (NuGet package, e.g., 2.2)
│ • Provides: WinUI 3, app lifecycle, windowing, push notifications
│ • Updated: independently via NuGet
│ • Constraint: has a minimum supported OS version
│
├── Compiled against: Windows SDK (e.g., 10.0.26100)
│ • Provides: Win32, WinRT, COM API declarations
│ • Updated: with Visual Studio or standalone installer
│ • Constraint: determines which APIs are visible at compile time
│
└── Runs on: Windows OS (e.g., Windows 11 24H2, build 26100)
• Provides: actual API implementations at runtime
• Updated: Windows Update
• Constraint: determines which APIs are callable at runtime
Kluczowe relacje:
- Zestaw SDK do aplikacji systemu Windows nie zastępuje zestawu SDK Windows — potrzebne są oba te elementy.
- Wersja zestawu SDK Windows może być nowsza niż system operacyjny uruchamiany przez aplikację (użyj testów środowiska uruchomieniowego dla nowszych interfejsów API).
- Wersja Zestaw SDK do aplikacji systemu Windows jest całkowicie niezależna — zaktualizuj ją bez zmiany niczego innego.
- Nie można wywołać interfejsu API platformy w czasie wykonywania, jeśli kompilacja systemu użytkownika jest starsza niż kompilacja, w której ten interfejs API został wprowadzony, niezależnie od tego, względem którego zestawu SDK skompilowano aplikację.
Konfiguracja pliku projektu
Właściwości MSBuild w pliku projektu sterują wyborem platformy docelowej. Nazwy właściwości różnią się nieco między językami C# i C++:
Plik projektu C# (csproj)
W projektach .NET w stylu zestawu SDK (używanych przez szablony WinUI 3 i Zestaw SDK do aplikacji systemu Windows) wersja platformy Windows jest osadzona w programie Target Framework Moniker (TFM):
<PropertyGroup>
<!-- The TFM includes the Windows SDK version you compile against -->
<TargetFramework>net8.0-windows10.0.26100.0</TargetFramework>
<!-- The minimum OS version your app supports -->
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
<!-- Or equivalently: -->
<!-- <TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion> -->
</PropertyGroup>
<ItemGroup>
<!-- Windows App SDK (independent of the above) -->
<PackageReference Include="Microsoft.WindowsAppSDK" Version="2.2.0" />
</ItemGroup>
Note
SupportedOSPlatformVersion i TargetPlatformMinVersion są równoważne w projektach w stylu zestawu SDK. Analizator zgodności platformy zestawu SDK .NET używa SupportedOSPlatformVersion do emitowania ostrzeżeń czasu kompilacji podczas wywoływania interfejsów API, które mogą być niedostępne w minimalnej wersji systemu operacyjnego.
Plik projektu C++ (.vcxproj)
<PropertyGroup>
<!-- Note: C++ uses "WindowsTargetPlatform" prefix -->
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
| Właściwość (C#) | Purpose | Efekt w przypadku ustawienia zbyt wysokiego | Efekt przy ustawieniu zbyt niskiej wartości |
|---|---|---|---|
wersja Windows w programie TFM (TargetFramework) |
Powierzchnia interfejsu API w czasie kompilacji | Włącza ostrzeżenia analizatora platformy (korzyść, a nie problem) | Nowsze interfejsy API są niewidoczne; Błędy kompilatora w przypadku odwołowania się do nich |
SupportedOSPlatformVersion / TargetPlatformMinVersion |
Minimalny system operacyjny do instalacji | Mniej użytkowników może zainstalować aplikację | Przed wywołaniem nowszych interfejsów API należy dodać kontrole środowiska uruchomieniowego |
Microsoft.WindowsAppSDK wersja |
Funkcje WinUI 3 i struktury | Nie dotyczy (użyj najnowszej stabilnej wersji) | Brak nowszych kontrolek winUI lub funkcji struktury |
Przewodnik po decyzjach: wybieranie wersji
Użyj następujących reguł, aby wybrać wersje nowego projektu:
-
Ustaw wersję platformy Windows w programie TFM na najnowszą stabilną Windows SDK (np.
net8.0-windows10.0.26100.0). Zapewnia to najszerszą powierzchnię interfejsu API w czasie kompilacji i umożliwia wyświetlanie ostrzeżeń analizatora zgodności platformy dla interfejsów API niedostępnych w minimalnym systemie operacyjnym. -
Ustaw
SupportedOSPlatformVersion(lubTargetPlatformMinVersion) w zależności od odbiorców:- Aplikacje dla przedsiębiorstw z urządzeniami zarządzanymi: są zgodne z minimalnym obsługiwanym systemem operacyjnym organizacji.
- Aplikacje konsumenckie (najszerszy zasięg):
10.0.19041.0(Windows 10 2004) lub10.0.17763.0(Windows 10 1809). - Aplikacje korzystające z funkcji z określonej wersji systemu operacyjnego: ustaw na numer kompilacji tej wersji.
- Zawsze używaj najnowszej stabilnej Zestaw SDK do aplikacji systemu Windows. Nie ma żadnych negatywnych skutków dla zgodności; obsługuje system Windows 10 od wersji 1809.
- Nigdy nie używaj wersji zapoznawczych/eksperymentalnych zestawów SDK w środowisku produkcyjnym.
Sprawdzanie dostępności API środowiska uruchomieniowego
Jeśli wersja platformy Windows w programie TFM jest wyższa niż SupportedOSPlatformVersion, niektóre interfejsy API widoczne w czasie kompilacji mogą nie istnieć na urządzeniu użytkownika. Analizator zgodności platformy .NET ostrzega o nich podczas kompilacji, ale przed ich wywołaniem należy również sprawdzić dostępność w czasie wykonywania.
Wzorzec: Sprawdź kontrakt API (kontrakty API WinRT)
using Windows.Foundation.Metadata;
if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 15))
{
// Safe to call APIs introduced in this contract version.
// For example, use a newer composition API:
}
else
{
// Fallback for older OS versions
}
Wzorzec: Sprawdź określony typ
if (ApiInformation.IsTypePresent("Windows.UI.Composition.SceneVisual"))
{
// Safe to use SceneVisual
}
Wzorzec: Sprawdzanie określonej metody
if (ApiInformation.IsMethodPresent("Windows.Storage.StorageFile", "GetFileFromPathForUserAsync"))
{
// Safe to call this method
}
Reguła: Jeśli pominiesz te kontrole i wywołasz niedostępny interfejs API, aplikacja zakończy się niepowodzeniem w czasie wykonywania. Dokładna awaria zależy od typu interfejsu API — typowe wyjątki to TypeLoadException, MissingMethodExceptionlub błąd specyficzny dla platformy.
Często zadawane pytania
"Którego zestawu SDK Windows używać?"
Użyj najnowszego dostępnego zestawu SDK Windows (obecnie 10.0.26100). Zawsze można kompilować z użyciem nowszego SDK niż minimalna wersja docelowa — wpływa to tylko na to, co jest dostępne podczas kompilacji.
"Czy muszę zaktualizować zestaw SDK Windows podczas aktualizowania Zestaw SDK do aplikacji systemu Windows?"
No. Są niezależne. Możesz zaktualizować Microsoft.WindowsAppSDK z wersji 1.7 do 1.8 bez zmiany wersji zestawu WINDOWS SDK.
"Moja aplikacja jest przeznaczona Windows 10. Czy mogę użyć Zestaw SDK do aplikacji systemu Windows?"
Yes. Zestaw SDK do aplikacji systemu Windows obsługuje Windows 10 w wersji 1809 (kompilacja 17763) i nowsze. Ustaw odpowiednio SupportedOSPlatformVersion.
Co się stanie, jeśli skompiluję przy użyciu zestawu SDK 10.0.26100, ale użytkownik uruchomi Windows 11 22H2 (kompilacja 22621)?
Interfejsy API wprowadzone między kompilacją 22621 i 26100 będą widoczne w kodzie, ale nie będą działać w czasie wykonywania, chyba że dodano kontrole dostępności interfejsu API. Interfejsy API z wersji 22621 i starszych będą działać normalnie.
"Jak sprawdzić, który numer kompilacji wprowadził określony interfejs API?"
Sprawdź stronę referencyjną interfejsu API w witrynie Microsoft Learn. Sekcja Wymagania zawiera minimalną kompilację systemu operacyjnego (jako wersję kontraktu interfejsu API lub wersję Windows).
Podsumowanie reguł
| Rule | Description |
|---|---|
| Wersja systemu operacyjnego = możliwości środowiska uruchomieniowego | Wersja kompilacji systemu operacyjnego użytkownika decyduje o tym, które interfejsy API rzeczywiście działają w czasie wykonywania. |
| zestaw SDK systemu Windows = obszar na etapie kompilacji | Instalowany zestaw SDK określa, które interfejsy API są widoczne w kodzie. |
| Zestaw SDK do aplikacji systemu Windows = struktura aplikacji | Zaktualizowano za pomocą narzędzia NuGet, niezależnie od wersji systemu operacyjnego i zestawu SDK platformy. |
| SDK ≥ OS jest bezpieczne | Możesz kompilować przy użyciu nowszego SDK niż minimalna wersja docelowa systemu operacyjnego. |
| Testy środowiska uruchomieniowego są wymagane | Jeśli serwer TFM jest przeznaczony dla nowszej wersji Windows niż SupportedOSPlatformVersion, należy chronić nowsze wywołania interfejsu API za pomocą kontroli środowiska uruchomieniowego. |
| Zgodność wsteczna zestawu Zestaw SDK do aplikacji systemu Windows | Zestaw Zestaw SDK do aplikacji systemu Windows obsługuje system Windows 10 w wersji 1809 i nowsze, niezależnie od wersji wydania. |