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.
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
enet start w3svc
- Winget:
winget install --id Microsoft.DotNet.HostingBundle.8 --version 8.0.12 -e
Solução efetiva passo a passo
Passo | Ação |
---|---|
Aceder ao site oficial | Abra a página Download .NET 8.0. Desça até ao bloco 8.0.12 Security patch → ASP.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/Restart | Apó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:
- Abrir “Download .NET”.
- Escolher “.NET 8.0 (LTS)”.
- Procurar a secção do patch 8.0.12 (Security patch).
- Dentro de ASP.NET Core Runtime 8.0.12, localizar a coluna do Windows x64.
- 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
- Só o Runtime (sem IIS). Para aplicações self‑hosted (Kestrel sem IIS):
winget install Microsoft.DotNet.AspNetCore.8 --version 8.0.12 -e
- Distribuição via Intune/ConfigMgr. Empacote o executável com
/quiet
e defina deteção emC:\Program Files\dotnet\dotnet.exe
+ pasta do runtime8.0.12
. - 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 Runtime → Hosting Bundle do patch pretendido.
Resolução de problemas
Sintoma | Causa provável | Como resolver |
---|---|---|
Instalação falha com erro genérico | Falta de pré‑requisito VC++ 2015‑2019 ou corrupção de componentes | Instale/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.32 | Módulo ANCMv2 em falta ou runtime 8.0.12 não visível | Repare/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 servidor | Mismatch entre TargetFramework e runtime disponível | Confirme 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 IIS | Reciclagem de App Pools sem estratégia | Use Restart-WebAppPool por aplicação, faça “warm‑up” e implemente arranque automático/preload em sites críticos. |
Winget bloqueado por política | Ambiente fechado/servidor sem acesso à Store | Prefira o executável dotnet-hosting-8.0.12-win.exe num repositório interno e distribua por script/ConfigMgr. |
Conflito com versões antigas | Instalações lado a lado 3.1/6.0 e aplicações com roll-forward | Mantenha 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 viawinget
. - IIS reciclado:
net stop was /y
→net start w3svc
. - Validação feita com
dotnet --info
e presença das pastas8.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.