Windows Server 2022: Download e instalação do .NET 8.0.12 Hosting Bundle (IIS) com PowerShell e Winget

Procurando o instalador “Windows Server Hosting” do .NET 8.0.12 e só encontra o Runtime? Este guia mostra onde clicar na página oficial, como instalar de forma silenciosa, automatizar com Winget/PowerShell, validar no IIS e resolver problemas comuns em Windows Server 2022.

Índice

Resumo da discussão

Problema levantado. O utilizador precisava atualizar várias VMs Windows Server 2022 para a versão .NET 8.0.12 e não encontrava o instalador Windows Server Hosting (Hosting Bundle); apenas via o Runtime.

Intervenções no Q&A. As respostas recebidas limitaram‑se a orientações administrativas (mudar de conta, usar o Feedback Hub, republicar noutro fórum) e não trouxeram o caminho exato até ao instalador.

Resposta curta para quem tem pressa

  • O instalador existe e está “dentro” do bloco ASP.NET Core Runtime 8.0.12 da página “Download .NET 8.0” — o link chama‑se Hosting Bundle.
  • Instalação silenciosa: dotnet-hosting-8.0.12-win.exe /install /quiet /norestart
  • Reiniciar IIS: net stop was /y e net start w3svc
  • Winget: winget install --id Microsoft.DotNet.HostingBundle.8 --version 8.0.12 -e

Solução efetiva passo a passo

PassoAção
Aceder ao site oficialAbra a página Download .NET 8.0. Desça até ao bloco 8.0.12 Security patchASP.NET Core Runtime 8.0.12 e clique em Hosting Bundle (Windows x64).
Instalação silenciosa (opcional)powershell .\dotnet-hosting-8.0.12-win.exe /install /quiet /norestart
Verificar/RestartApós instalar, reinicie o IIS ou execute: cmd net stop was /y net start w3svc
Winget (instalação via CLI)powershell winget install --id Microsoft.DotNet.HostingBundle.8 --version 8.0.12 -e

O que o Hosting Bundle instala

  • .NET Runtime 8.0.12 (x64/x86)
  • ASP.NET Core Runtime 8.0.12
  • ASP.NET Core Module v2 (ANCMv2) para integração com o IIS

Nota. O .NET tem side‑by‑side por versão principal: instalar o 8.0.12 não remove o 6.0, por exemplo. Dentro da mesma linha 8.0.x, o Hosting Bundle substitui a compilação anterior.

Pré‑requisito

Em servidores antigos, garanta o Visual C++ 2015‑2019 Redistributable instalado (x64). Em Windows Server 2022 atualizados, normalmente já está presente, mas em ambientes desatualizados é prudente validar antes de avançar.

Como localizar o Hosting Bundle na página da Microsoft

Se o botão direto não estiver à vista, navegue assim:

  1. Abrir “Download .NET”.
  2. Escolher “.NET 8.0 (LTS)”.
  3. Procurar a secção do patch 8.0.12 (Security patch).
  4. Dentro de ASP.NET Core Runtime 8.0.12, localizar a coluna do Windows x64.
  5. Clicar em Hosting Bundle (o texto “Windows Server Hosting” pode aparecer na descrição).

Dica: a página destaca sempre o patch mais recente da linha 8.0 (por exemplo, 8.0.19 hoje). Para patches antigos, use a área “Previous versions” na mesma página e then procure o bloco do 8.0.12.

Instalação silenciosa com PowerShell

Para automatizar a instalação em servidores únicos ou scripts de manutenção, use:

powershell
$installer = "C:\Pacotes\dotnet-hosting-8.0.12-win.exe"  # ajuste o caminho
$params    = "/install /quiet /norestart"

\$proc = Start-Process -FilePath \$installer -ArgumentList \$params -Wait -PassThru
Write-Host "ExitCode: \$(\$proc.ExitCode)"

Reiniciar IIS com downtime mínimo

& cmd /c "net stop was /y & net start w3svc"

Validação rápida

dotnet --info 

Instalação via Winget

Se o winget estiver permitido no seu padrão de gestão:

powershell
winget install --id Microsoft.DotNet.HostingBundle.8 --version 8.0.12 -e --accept-package-agreements --accept-source-agreements

Comandos úteis:

powershell
winget show Microsoft.DotNet.HostingBundle.8 -e
winget list Microsoft.DotNet.HostingBundle.8 -e
winget upgrade Microsoft.DotNet.HostingBundle.8 -e

Validação pós‑instalação

Confirme que o runtime e o módulo do IIS foram instalados corretamente.

Verificar o runtime

powershell
dotnet --info
Verifique se "Microsoft.NETCore.App 8.0.12" e "Microsoft.AspNetCore.App 8.0.12" aparecem

Verificar o ASP.NET Core Module v2 no IIS

powershell
Import-Module WebAdministration
Get-WebGlobalModule -Name "AspNetCoreModuleV2"

Verificar pastas de runtime

powershell
Test-Path "C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.12"
Test-Path "C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\8.0.12"

Deteção para Intune/ConfigMgr

Ao empacotar o executável, utilize /quiet e uma regra de deteção por ficheiro:

  • Ficheiro/versão: C:\Program Files\dotnet\dotnet.exe (verificar existência)
  • Pasta: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\8.0.12

Exemplo de comando de instalação para Intune:

dotnet-hosting-8.0.12-win.exe /install /quiet /norestart

Automação em escala com PowerShell Remoting

Script exemplo para instalar simultaneamente em várias VMs. Requer WinRM ativo e permissões de administrador.

powershell
Lista de servidores (um por linha)
$servers = @(
  "WS2022-APP01",
  "WS2022-APP02",
  "WS2022-API01"
)

Caminho onde o instalador está disponível (partilha interna)

\$source = "\\\fileserver\packages\dotnet\dotnet-hosting-8.0.12-win.exe"
\$dest   = "C:\Temp\dotnet-hosting-8.0.12-win.exe"

Invoke-Command -ComputerName \$servers -ScriptBlock {
param(\$source, \$dest)

if (-not (Test-Path (Split-Path \$dest))) { New-Item -ItemType Directory -Path (Split-Path \$dest) -Force | Out-Null }

Copy-Item \$source \$dest -Force
\$args = "/install /quiet /norestart"
\$p = Start-Process -FilePath \$dest -ArgumentList \$args -Wait -PassThru

if (\$p.ExitCode -ne 0) {
throw "Instalador devolveu ExitCode \$(\$p.ExitCode)"
}

Reinício controlado do IIS

cmd /c "net stop was /y & net start w3svc" | Out-Null

Validação

\$hasAspNet = Test-Path "C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\8.0.12"
\$hasCore   = Test-Path "C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.12"

\[pscustomobject]@{
ComputerName = \$env\:COMPUTERNAME
HostingBundle = if (\$hasAspNet -and \$hasCore) { "OK" } else { "FALHA" }
}
} -ArgumentList \$source, \$dest | Format-Table -AutoSize 

Verificação de versão em lote

Use este one‑liner para auditar várias máquinas:

powershell
$servers | ForEach-Object {
  try {
    Invoke-Command -ComputerName $_ -ScriptBlock {
      $core = Test-Path "C:\Program Files\dotnet\shared\Microsoft.NETCore.App\8.0.12"
      $asp  = Test-Path "C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\8.0.12"
      "$env:COMPUTERNAME`tCore=$core`tAspNet=$asp"
    } -ErrorAction Stop
  } catch {
    "$`tERRO=$($.Exception.Message)"
  }
}

Dicas adicionais

  1. Só o Runtime (sem IIS). Para aplicações self‑hosted (Kestrel sem IIS):
    winget install Microsoft.DotNet.AspNetCore.8 --version 8.0.12 -e
  2. Distribuição via Intune/ConfigMgr. Empacote o executável com /quiet e defina deteção em C:\Program Files\dotnet\dotnet.exe + pasta do runtime 8.0.12.
  3. Atualizações futuras. A página de download mostra sempre a patch mais recente (8.0.19 hoje). Para versões anteriores, use “Previous versions” e escolha ASP.NET Core RuntimeHosting Bundle do patch pretendido.

Resolução de problemas

SintomaCausa provávelComo resolver
Instalação falha com erro genéricoFalta de pré‑requisito VC++ 2015‑2019 ou corrupção de componentesInstale/repacote o Redistributable. Se persistir, execute DISM /Online /Cleanup-Image /RestoreHealth e sfc /scannow, reinicie e tente de novo.
Sites IIS devolvem 500.31/500.32Módulo ANCMv2 em falta ou runtime 8.0.12 não visívelRepare/instale o Hosting Bundle e reinicie o IIS. Confirme Get-WebGlobalModule -Name AspNetCoreModuleV2 e a presença das pastas do runtime.
Aplicação funciona localmente mas falha no servidorMismatch entre TargetFramework e runtime disponívelConfirme a pasta Microsoft.AspNetCore.App\8.0.12. Se a app estiver self‑contained, reimplante com a mesma versão que compila.
Downtime prolongado ao reiniciar IISReciclagem de App Pools sem estratégiaUse Restart-WebAppPool por aplicação, faça “warm‑up” e implemente arranque automático/preload em sites críticos.
Winget bloqueado por políticaAmbiente fechado/servidor sem acesso à StorePrefira o executável dotnet-hosting-8.0.12-win.exe num repositório interno e distribua por script/ConfigMgr.
Conflito com versões antigasInstalações lado a lado 3.1/6.0 e aplicações com roll-forwardMantenha múltiplos majors e limite o roll-forward via runtimeconfig.json se necessário (produção controlada).

Boas práticas de operação

  • Janela de manutenção. Agende fora do horário de pico e valide em homologação antes de produção.
  • Backups e reversão. Embora a atualização dentro do 8.0.x seja in‑place, mantenha snapshot/backup e capacidade de rollback de código.
  • Monitorização. Verifique o Event Viewer (Aplicação) por eventos “.NET Runtime” e “IIS AspNetCore Module V2”.
  • Compatibilidade. Para aplicações framework‑dependent, garanta que a versão alvo corresponde ao runtime presente no servidor.
  • Servidor Core. Todos os comandos funcionam em Server Core; use PowerShell Remoting e ServerManager para gerir o IIS remotamente.

FAQ operacional

O Hosting Bundle inclui o SDK? Não. Ele instala apenas runtimes (Core + ASP.NET Core) e o módulo do IIS. O SDK é opcional e recomendado apenas em servidores de build.

Preciso reiniciar o servidor? Normalmente não. O /norestart evita reboot; basta reciclar o IIS. Porém, se houver ficheiros bloqueados, um reboot pode ser exigido.

Posso remover o x86? O Hosting Bundle instala x64 e x86 por padrão para maximizar compatibilidade. Em servidores estritamente x64, é aceitável deixar o x86 instalado; o impacto em disco é mínimo.

Como confirmar a versão do ANCM? Em “Módulos” no IIS Manager, verifique “AspNetCoreModuleV2”; ou via PowerShell com Get-WebGlobalModule.

Qual a ordem segura de atualização? Hosting Bundle primeiro, depois reciclagem do IIS, em seguida validação de sites. Para farms, atualize nó a nó atrás do balanceador.

Checklist final

  • Hosting Bundle 8.0.12 descarregado a partir da secção ASP.NET Core Runtime.
  • Instalação executada com /quiet /norestart ou via winget.
  • IIS reciclado: net stop was /ynet start w3svc.
  • Validação feita com dotnet --info e presença das pastas 8.0.12.
  • Deteção configurada em Intune/ConfigMgr.
  • Plano de rollback e janela de manutenção respeitados.

Conclusão

O instalador “Windows Server Hosting” do .NET 8.0.12 não desapareceu — está apenas escondido na listagem do ASP.NET Core Runtime 8.0.12 como Hosting Bundle. Replique os passos deste guia ou use diretamente os comandos de PowerShell e Winget indicados para atualizar rapidamente os seus servidores Windows Server 2022, com validação e recuperação simples. Para ciclos seguintes, lembre‑se de que a página de download destaca sempre a compilação mais recente do 8.0; quando precisar de um patch específico, percorra a área de versões anteriores e selecione o Hosting Bundle correspondente. Assim, mantém o IIS pronto para produção, com o runtime certo e o ANCMv2 atualizado.

Índice