.NET Framework 3.5 deixará de vir nativo no Windows

O .NET Framework 3.5 deixa de fazer parte do Windows a partir do Windows 11 26H1 (build 28000) e passa a existir apenas como um instalador independente. Neste artigo, analiso essa mudança, as motivações da Microsoft e os impactos práticos para desenvolvedores, equipes de infraestrutura e empresas que ainda dependem dessa versão.

Ao longo de mais de uma década, essa versão ocupou um papel singular no ecossistema Windows.

Mesmo após o surgimento de versões modernas da plataforma .NET, ela continuou relevante porque sustenta aplicações legadas críticas, sobretudo em ambientes corporativos.

O que muda no .NET Framework 3.5

Em fevereiro de 2026, a equipe do .NET anunciou no blog oficial que o .NET Framework 3.5 passaria para um modelo de implantação independente (standalone deployment) nas novas versões do Windows. A mudança começou a valer no Windows 11 Insider Preview Build 27965 e chegou à versão final com o Windows 11 26H1.

Na prática, o sistema operacional não traz mais o .NET Framework 3.5 como recurso embutido nem como componente opcional. Quem precisa dele baixa um instalador separado e o executa na máquina.

Segundo a documentação oficial de instalação no Windows 11, o comportamento depende da versão do sistema:

  • Windows 11 25H2 e anteriores: o .NET Framework 3.5 continua disponível como recurso opcional, ativado via Features on Demand.
  • Nas versões 26H1 (build 28000) e posteriores do Windows 11: a instalação acontece somente pelo instalador independente.
  • No Windows 10, nada muda, e o recurso continua disponível como antes.

Além disso, a Microsoft publicou também um pacote de idioma separado para o .NET Framework 3.5 no Windows 11 26H1. Os dois instaladores funcionam apenas na versão do Windows indicada na página de download.

O modelo tradicional de distribuição

Historicamente, o Windows tratava o .NET Framework 3.5 como um componente opcional. Embora não viesse ativado por padrão, ele estava presente no sistema operacional e podia ser habilitado por diferentes caminhos.

Esse modelo começou no Windows 8, quando o .NET Framework 4.5 passou a vir ativado e a versão 3.5 virou um recurso opcional. Desde então, os arquivos ficavam na mídia de instalação ou no Windows Update.

Os administradores podiam habilitar o recurso de várias formas:

  • pelo painel Ativar ou desativar recursos do Windows;
  • por comandos do DISM, com ou sem acesso à internet;
  • pelo PowerShell, com Enable-WindowsOptionalFeature ou Install-WindowsFeature no Windows Server;
  • por Política de Grupo, apontando uma origem alternativa para os arquivos.

Esse modelo trouxe vantagens importantes, como a facilidade de ativação em ambientes corporativos e a integração com o mecanismo de atualização do Windows. Além disso, ele reduzia a necessidade de gerenciar instaladores externos.

Por outro lado, ele também criou uma percepção equivocada. Muita gente passou a enxergar o .NET Framework 3.5 como parte do núcleo moderno do Windows, quando, na prática, trata-se de uma tecnologia em estágio avançado de legado.

Como era a ativação do .NET Framework 3.5 via DISM

O comando clássico para ativar o recurso em uma máquina com acesso ao Windows Update era este:

:: Ativa o recurso NetFx3 e todos os recursos pais
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All

Em máquinas sem internet, o administrador apontava a pasta sources\sxs da mídia de instalação:

:: Usa a mídia de instalação montada no drive D: como origem
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

Esses comandos continuam válidos no Windows 10 e no Windows 11 até a versão 25H2. No entanto, eles não servem mais no Windows 11 26H1, porque o recurso NetFx3 simplesmente deixou de existir ali.

Como instalar o .NET Framework 3.5 no Windows 11 26H1

A partir do Windows 11 26H1, a instalação do .NET Framework 3.5 segue um fluxo parecido com o de qualquer outro software. Primeiro, você baixa o instalador independente na página oficial da Microsoft e, em seguida, executa o arquivo com privilégios de administrador.

Caso uma aplicação antiga tente rodar sem o runtime, o próprio Windows exibe um aviso do Program Compatibility Assistant. Esse aviso aponta para a documentação de instalação, por isso o usuário consegue chegar ao instalador correto.

Contudo, algumas aplicações legadas tratam a ausência do runtime de forma pouco clara. Nesse caso, a mensagem pode se resumir a um "runtime error", e a orientação da Microsoft é seguir a documentação ou procurar o fornecedor do software.

Instalação silenciosa e automação

O novo instalador aceita as opções /q e /quiet para instalações sem interação. Isso facilita a automação em scripts de provisionamento, ferramentas de gerenciamento e pipelines.

Um exemplo simples em PowerShell seria este:

# Caminho do instalador baixado previamente (nome ilustrativo)
$installerPath = "C:\Installers\NetFx35Setup.exe"

# Executa o instalador em modo silencioso e aguarda o término
$process = Start-Process -FilePath $installerPath -ArgumentList "/quiet" -Wait -PassThru

# Verifica o código de saída da instalação
if ($process.ExitCode -ne 0) {
    Write-Error "Installation failed with exit code $($process.ExitCode)"
}

Depois da instalação, você pode conferir a presença do runtime pelo registro do Windows:

# Lê a chave de registro que indica a instalação do runtime 3.5
$key = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" -ErrorAction SilentlyContinue

if ($key.Install -eq 1) {
    Write-Output "NET Framework 3.5 is installed"
} else {
    Write-Output "NET Framework 3.5 is not installed"
}

O que deixa de funcionar

A mudança tem efeitos colaterais que vão além do botão em Recursos do Windows. O FAQ oficial deixa claro que não existe mais suporte para aplicar o .NET Framework 3.5 a uma imagem offline do Windows.

Em outras palavras, o DISM e outras ferramentas de customização de imagens offline não conseguem mais gerenciar esse componente. A Microsoft recomenda usar o online servicing, ou seja, modificar a instalação do Windows já em execução.

Outro ponto importante: quando você atualiza o Windows para a próxima versão, o .NET Framework 3.5 não segue junto. Portanto, você precisa reinstalá-lo após cada upgrade de versão do sistema.

Componentes do .NET Framework 3.5 removidos

Junto com o runtime, o Windows 11 26H1 também removeu os componentes opcionais que dependiam dele. A lista oficial inclui:

  • ASP.NET 3.5;
  • .NET Extensibility 3.5;
  • WCF HTTP Activation;
  • WCF non-HTTP Activation.

Esse detalhe afeta diretamente servidores e estações que hospedam aplicações web antigas no IIS. Por isso, a Microsoft disponibilizou um script PowerShell chamado Enable-ASPNet35.ps1, que restaura a funcionalidade do ASP.NET 3.5 e do .NET Extensibility 3.5.

Para rodar o script, você precisa do Windows PowerShell 5.1, do runtime 3.5 instalado e do IIS com os componentes ISAPI Filters e ISAPI Extensions. Além disso, a janela do PowerShell precisa estar em modo administrador:

# Permite executar scripts baixados e assinados por publicadores confiáveis
Set-ExecutionPolicy RemoteSigned

# Executa o script a partir da pasta onde ele foi salvo
.\Enable-ASPNet35.ps1

Vale notar que o script apenas restaura o funcionamento. Os componentes opcionais continuam ausentes do Windows, e ferramentas como o DISM não vão detectá-los como presentes.

Por que a Microsoft tirou o .NET Framework 3.5 do Windows

Essa decisão não surge de forma isolada. Ela se alinha a uma estratégia mais ampla da Microsoft de desacoplar tecnologias legadas do Windows e incentivar a modernização do ecossistema .NET.

Entre os fatores que justificam a mudança, destaco três.

Redução da superfície de manutenção

Manter componentes antigos embutidos no sistema aumenta o custo de suporte, testes e atualizações. Com o instalador independente, o Windows deixa de carregar esse peso em cada nova versão.

Inclusive, as atualizações mudaram de formato. A Microsoft passou a publicar atualizações cumulativas específicas para o .NET Framework 3.5 no Windows 11 26H1, que entregam o produto completo e substituem a versão anterior.

Clareza sobre o status de legado

Ao exigir uma instalação separada, a Microsoft deixa explícito que o .NET Framework 3.5 não deve mais ser considerado padrão. A própria documentação lembra que a versão chegou em 2008 e pede que você procure uma versão atualizada do software antes de instalá-la.

Além disso, apenas o runtime continua suportado. Desenvolver novas aplicações com alvo no .NET Framework 3.5 não tem suporte, embora o runtime execute aplicações que miram as versões 1.0 até 3.5.

Data de fim de suporte definida

O .NET Framework 3.5 SP1 tem fim de suporte marcado para 9 de janeiro de 2029, conforme a política de ciclo de vida da Microsoft. O instalador independente segue exatamente a mesma data.

Portanto, a mudança no Windows funciona também como um lembrete. Faltam poucos anos para que essas aplicações percam atualizações de segurança.

Impactos para desenvolvedores e infraestrutura

Do ponto de vista operacional, essa mudança exige atenção imediata, especialmente em ambientes corporativos com automação madura. Aplicações legadas continuam funcionando, desde que alguém aplique o instalador independente corretamente.

No entanto, alguns processos precisam de revisão:

  • criação de imagens customizadas do Windows;
  • provisionamento automático de máquinas;
  • pipelines de CI/CD que criam ambientes de teste;
  • upgrades de versão do Windows em parque corporativo.

Em todos esses casos, a equipe precisa garantir que o .NET Framework 3.5 esteja presente antes da execução das aplicações. Caso contrário, o problema só aparece quando o usuário abre o sistema e recebe um erro.

Para quem desenvolve, o cenário também muda. A Microsoft orienta instalar o runtime na máquina e, em seguida, habilitar o componente .NET Framework 3.5 Development Tools no Visual Studio, na aba de componentes individuais.

Além disso, dependências em tecnologias que exigem instalação manual adicional tendem a aumentar o custo operacional. Com isso, o ambiente fica menos previsível e mais difícil de reproduzir.

Como migrar do .NET Framework 3.5

Embora o .NET Framework 3.5 continue disponível, considero essa mudança um sinal claro de que seu uso deve ser encarado como transitório. A Microsoft recomenda dois caminhos, nesta ordem de preferência.

O primeiro é migrar para o .NET moderno, como o .NET 10. Esse caminho oferece melhor desempenho, suporte ativo, integração com arquiteturas atuais e uma experiência de desenvolvimento muito superior.

O segundo é atualizar a aplicação para o .NET Framework 4.8 ou 4.8.1. Esse caminho faz sentido quando a aplicação depende de tecnologias que não existem no .NET moderno, como WCF no lado servidor ou ASP.NET Web Forms.

Primeiros passos da migração

Antes de tudo, faça um inventário das aplicações que ainda dependem do runtime antigo. Em seguida, identifique quais bibliotecas de terceiros e componentes do Windows elas utilizam.

Uma forma rápida de identificar o alvo de um projeto antigo é olhar o arquivo .csproj:

<!-- Projeto no formato antigo com alvo no .NET Framework 3.5 -->
<PropertyGroup>
  <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
</PropertyGroup>

Outra pista fica no app.config, que indica qual runtime a aplicação espera encontrar:

<!-- O runtime v2.0.50727 corresponde às versões 2.0, 3.0 e 3.5 -->
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

Depois do inventário, consulte o guia de problemas de migração para o .NET Framework 4 e a visão geral de portabilidade do .NET Framework para o .NET. Ambos estão na documentação oficial e cobrem as mudanças de comportamento mais comuns.

Para empresas e fornecedores de software, existe ainda o programa FastTrack App Assure. Ele oferece ajuda personalizada com compatibilidade e migração.

O custo de não migrar

A migração pode não ser trivial em todos os cenários, especialmente em sistemas críticos e antigos. Ainda assim, o custo de não migrar tende a crescer com o tempo.

Cada upgrade de Windows exige reinstalar o runtime, cada imagem nova precisa de um passo extra e o prazo de 2029 se aproxima. Se você quer entender melhor o papel de um framework nessa equação, vale ler o artigo sobre o que é um framework aqui no balta.io.

Checklist do .NET Framework 3.5 para equipes

Para facilitar o planejamento, reuni os pontos que considero essenciais para quem mantém aplicações com essa dependência:

  1. Identifique quais máquinas vão receber o Windows 11 26H1 ou versões posteriores.
  2. Liste as aplicações que dependem do .NET Framework 3.5 e dos componentes ASP.NET 3.5 ou WCF Activation.
  3. Baixe o instalador independente e o pacote de idioma corretos para a versão do Windows.
  4. Ajuste scripts de provisionamento para usar a instalação silenciosa com /quiet.
  5. Remova passos de DISM offline que adicionavam o recurso NetFx3 às imagens.
  6. Inclua a reinstalação do runtime no processo de upgrade de versão do Windows.
  7. Execute o script Enable-ASPNet35.ps1 nos servidores IIS que hospedam aplicações ASP.NET 3.5.
  8. Crie um plano de migração com prazo anterior a janeiro de 2029.

Se você ainda está montando seu ambiente, o guia de instalação do Windows 11 ajuda a preparar a máquina antes desses passos.

Conclusão

A transição do .NET Framework 3.5 para um modelo de implantação independente representa mais do que uma simples alteração técnica. Trata-se de uma mensagem clara da Microsoft sobre o futuro da plataforma e sobre a necessidade de modernizar o ecossistema.

Como profissional que acompanha a evolução do .NET há muitos anos, interpreto essa mudança como um passo natural e necessário. Ela preserva a compatibilidade com aplicações legadas e, ao mesmo tempo, reforça a importância de planejar o futuro com tecnologias que continuam evoluindo.

Ignorar esse movimento pode resultar em ambientes mais complexos, frágeis e caros de manter. Por outro lado, encarar o fim do .NET Framework 3.5 embutido como uma oportunidade de revisão arquitetural pode gerar ganhos significativos no longo prazo.

FAQ

O .NET Framework 3.5 ainda vem no Windows 11?

Depende da versão. Até o Windows 11 25H2 ele continua como recurso opcional, mas a partir do Windows 11 26H1 (build 28000) você precisa usar o instalador independente.

O Windows 10 também perdeu o .NET Framework 3.5?

Não. O Windows 10 e as versões do Windows 11 até a 25H2 continuam com o recurso opcional disponível.

Até quando o .NET Framework 3.5 tem suporte?

O suporte termina em 9 de janeiro de 2029, tanto para o .NET Framework 3.5 SP1 quanto para o novo instalador independente.

Posso adicionar o .NET Framework 3.5 a uma imagem offline do Windows 11 26H1?

Não. A instalação em imagens offline deixou de ter suporte, então a Microsoft recomenda instalar o runtime na instalação do Windows já em execução.

O instalador independente aceita instalação silenciosa?

Sim. Ele aceita as opções /q e /quiet, o que permite automatizar a instalação em scripts e ferramentas de gerenciamento.

Qual é o caminho de migração recomendado?

A Microsoft recomenda migrar para o .NET moderno, como o .NET 10. Quando isso não for possível, a alternativa é atualizar para o .NET Framework 4.8 ou 4.8.1.