Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao começar a criar aplicativos Windows, você observará referências a vários números de versão diferentes: a versão do sistema operacional Windows, o SDK do Windows e o SDK do Aplicativo Windows. Não se preocupe: para a maioria dos novos projetos, Visual Studio define padrões sensatos e você não precisará pensar nisso. Mas quando você precisa direcionar uma versão específica do sistema operacional, entender por que uma API não está disponível ou configurar seu arquivo de projeto, este artigo explica como as partes se encaixam e quais opções fazer.
Definições
| Component | O que é | Formato de versão | Como ele é atualizado |
|---|---|---|---|
| Windows versão do sistema operacional | O sistema operacional instalado no dispositivo do usuário. |
YYHX (por exemplo, 24H2, 25H2) |
Windows Update (atualizações anuais de recursos) |
| Windows SDK (SDK da plataforma) | Cabeçalhos, bibliotecas e metadados para APIs Win32, WinRT e COM. |
10.0.BBBBB.x (por exemplo, 10.0.26100.0) |
Instalado com Visual Studio ou instalador autônomo |
| SDK do Aplicativo Windows | Estrutura distribuída pelo NuGet que fornece WinUI 3, ciclo de vida do aplicativo, janelas e outros recursos de aplicativo modernos. |
Major.Minor.Patch (por exemplo, 1,8,1) |
Atualização do pacote NuGet em seu projeto |
Nomenclatura de versões do sistema operacional Windows
Windows 11 fornece as principais atualizações de recursos usando o padrão de nomenclatura YYHX:
- YY = ano civil de dois dígitos
- H1 = primeiro semestre do ano; H2 = segundo semestre do ano
Historicamente, a maioria dos principais lançamentos ocorre no outono (H2), mas também há lançamentos no H1.
| Versão do sistema operacional Windows | Ano lançado | Número de build do sistema operacional |
|---|---|---|
| Windows 11 22H2 | 2022 | 22621 |
| Windows 11 23H2 | 2023 | 22631 |
| Windows 11 24H2 | 2024 | 26100 |
Regra: O número de build do sistema operacional no dispositivo do usuário determina quais APIs de plataforma estão disponíveis em runtime.
Dica
Verifique o número de build do sistema operacional em qualquer dispositivo pressionando Win + R e digitando winver.
Mapeamento das versões do SDK do Windows para as versões do sistema operacional
Cada Windows família de versões do SDK corresponde a uma versão do sistema operacional Windows. O número de build principal do SDK normalmente corresponde ao número de build do sistema operacional, embora algumas atualizações de recursos do sistema operacional (entregues como pacotes de habilitação) compartilhem a mesma família de SDK que uma versão anterior.
| família de SDKs do Windows | Compilação do sistema operacional | Corresponde à versão Windows |
|---|---|---|
| 10.0.22621.x | 22621 | Windows 11 22H2 /23H2 |
| 10.0.26100.x | 26100 | Windows 11 24H2 |
Note
Dentro de uma família SDK, o último componente (por exemplo, 10,0,26100.2454) representam atualizações de manutenção mensais que adicionam correções de bug, mas não novas APIs.
Regra: A instalação de uma determinada Windows SDK concede acesso de tempo de compilação a todas as APIs dessa versão do sistema operacional e a todas as versões anteriores. As APIs são cumulativas.
SDK do Aplicativo Windows versões
O SDK do Aplicativo Windows é independente do sistema operacional Windows e do SDK do Windows. Ele é distribuído em seu próprio ritmo como um pacote NuGet.
| SDK de Aplicativos Windows | Data de lançamento | Sistema operacional mínimo compatível | Pacote NuGet |
|---|---|---|---|
| 2,2 | 2026-06-09 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 2.2.x |
| 2.1 | 2026-05-21 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 2.1.x |
| 2.0 | 2026-04-29 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 2.0.x |
| 1.8 | 2025-09-09 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 1.8.x |
| 1.7 | 2025-03-18 | Windows 10 1809 (build 17763) | Microsoft.WindowsAppSDK 1.7.x |
Regra: Você pode usar o SDK do Aplicativo Windows mais recente em versões do sistema operacional mais antigas (de volta ao mínimo indicado). A versão SDK do Aplicativo Windows não precisa corresponder à versão do sistema operacional Windows ou Windows versão do SDK.
Para obter a matriz de suporte completa, consulte SDK do Aplicativo Windows versões de Windows com suporte.
Como os três componentes se relacionam
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
Relações-chave:
- SDK do Aplicativo Windows não substitui o SDK do Windows – você precisa de ambos.
- A versão do SDK Windows pode ser mais recente do que o sistema operacional em que seu aplicativo é executado (use verificações de runtime para APIs mais recentes).
- A versão SDK do Aplicativo Windows é completamente independente– atualize-a sem alterar mais nada.
- Não é possível chamar uma API da plataforma em tempo de execução se o build do sistema operacional do usuário for mais antigo do que o build que a introduziu, independentemente do SDK com o qual você compilou.
Configuração do arquivo de projeto
As propriedades do MSBuild no arquivo do seu projeto controlam o direcionamento da plataforma. Os nomes de propriedade diferem ligeiramente entre C# e C++:
Arquivo de projeto C# (.csproj)
Em projetos .NET no formato SDK (usados nos modelos do WinUI 3 e do SDK do Aplicativo Windows), a versão da plataforma Windows fica incorporada ao 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 e TargetPlatformMinVersion são equivalentes em projetos no estilo SDK. O analisador de compatibilidade de plataforma do SDK do .NET usa SupportedOSPlatformVersion para emitir avisos em tempo de compilação quando você chama APIs que podem não estar disponíveis na versão mínima do seu sistema operacional.
Arquivo de projeto C++ (.vcxproj)
<PropertyGroup>
<!-- Note: C++ uses "WindowsTargetPlatform" prefix -->
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.17763.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
| Propriedade (C#) | Purpose | Efeito se definido alto demais | Efeito se definido muito baixo |
|---|---|---|---|
Versão do Windows no TFM (TargetFramework) |
Superfície da API em tempo de compilação | Habilita avisos do analisador de plataforma (um benefício, não um problema) | As APIs mais recentes são invisíveis; o compilador emitirá erros se você fizer referência a elas |
SupportedOSPlatformVersion / TargetPlatformMinVersion |
Sistema operacional mínimo para instalação | Menos usuários podem instalar seu aplicativo | Você deve adicionar verificações de runtime antes de chamar APIs mais recentes |
Versão do Microsoft.WindowsAppSDK |
WinUI 3 e recursos de estrutura | N/A (usar a versão estável mais recente) | Faltam controles ou recursos de estrutura do WinUI mais recentes |
Guia de decisão: escolher versões
Use as seguintes regras para selecionar versões para um novo projeto:
-
Defina a versão da plataforma Windows em seu TFM como o SDK de Windows estável mais recente (por exemplo,
net8.0-windows10.0.26100.0). Isso oferece a mais ampla superfície de API disponível em tempo de compilação e habilita avisos do analisador de compatibilidade da plataforma para APIs que não estão disponíveis no sistema operacional mínimo compatível. -
Defina
SupportedOSPlatformVersion(ouTargetPlatformMinVersion) com base em seu público-alvo:- Aplicativos empresariais com dispositivos gerenciados: correspondem ao sistema operacional mínimo com suporte da sua organização.
- Aplicativos de consumidor (alcance mais amplo):
10.0.19041.0(Windows 10 2004) ou10.0.17763.0(Windows 10 1809). - Aplicativos que usam recursos de uma versão específica do sistema operacional: definido como o número de build dessa versão.
- Sempre use a SDK do Aplicativo Windows estável mais recente. Não há perda de compatibilidade; é compatível desde o Windows 10 1809.
- Nunca use versões prévias/experimentais do SDK em produção.
Verificações de disponibilidade da API de runtime
Quando a versão da plataforma Windows em seu TFM é maior do queSupportedOSPlatformVersion, algumas APIs visíveis em tempo de compilação podem não existir no dispositivo do usuário. O analisador de compatibilidade da plataforma .NET avisa sobre eles em tempo de compilação, mas você também deve verificar a disponibilidade no runtime antes de chamá-los.
Padrão: Verificar o contrato de API (APIs do 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
}
Padrão: verificar se há um tipo específico
if (ApiInformation.IsTypePresent("Windows.UI.Composition.SceneVisual"))
{
// Safe to use SceneVisual
}
Padrão: verificar se há um método específico
if (ApiInformation.IsMethodPresent("Windows.Storage.StorageFile", "GetFileFromPathForUserAsync"))
{
// Safe to call this method
}
Regra: Se você ignorar essas verificações e chamar uma API indisponível, o aplicativo falhará em runtime. A falha exata depende do tipo de API — exceções comuns incluem TypeLoadException, MissingMethodExceptionou um erro específico da plataforma.
Perguntas comuns
"Qual Windows SDK devo usar?"
Use o SDK de Windows mais recente disponível (atualmente 10.0.26100). Você sempre pode compilar com um SDK mais recente do que a versão mínima de destino — isso afeta apenas o que fica visível em tempo de compilação.
"Preciso atualizar o SDK do Windows quando atualizar o SDK do Aplicativo Windows?"
Não. Eles são independentes. Você pode atualizar Microsoft.WindowsAppSDK da 1.7 para a 1.8 sem alterar a versão do SDK do Windows.
"Meu aplicativo tem como destino Windows 10. Posso usar o SDK do Aplicativo Windows?"
Sim. O SDK do Aplicativo Windows dá suporte a Windows 10 versão 1809 (build 17763) e posterior. Defina o seu SupportedOSPlatformVersion adequadamente.
O que acontece se eu compilar com o SDK 10.0.26100, mas o usuário estiver executando o Windows 11 22H2 (build 22621)?
As APIs introduzidas entre o build 22621 e 26100 estarão visíveis em seu código, mas falharão em runtime, a menos que você adicione verificações de disponibilidade de API. As APIs da versão 22621 e anteriores funcionarão normalmente.
"Como saber qual número de build introduziu uma API específica?"
Verifique a página de referência da API no Microsoft Learn. A seção Requisitos lista o build mínimo do sistema operacional (como uma versão de contrato de API ou Windows versão).
Resumo das regras
| Rule | Description |
|---|---|
| Versão do sistema operacional = capacidade de tempo de execução | O build do sistema operacional do usuário determina quais APIs realmente funcionam em runtime. |
| SDK do Windows = superfície de tempo de compilação | O SDK instalado determina quais APIs estão visíveis em seu código. |
| SDK do Aplicativo Windows = estrutura do aplicativo | Atualizado por meio do NuGet, independentemente das versões do SDK do sistema operacional e da plataforma. |
| SDK ≥ SO é seguro | Você pode compilar com um SDK mais recente do que a versão mínima do sistema operacional de destino. |
| As verificações em tempo de execução são necessárias | Se o TFM for direcionado a uma versão de Windows maior do queSupportedOSPlatformVersion, proteja as chamadas de API mais recentes com verificações de runtime. |
| Retrocompatibilidade do SDK do Aplicativo Windows | O SDK do Aplicativo Windows oferece suporte desde o Windows 10, versão 1809, independentemente da sua versão de lançamento. |
Conteúdo relacionado
Windows developer