Files
lux/MassUpdateNuget.ps1
T
2026-01-23 15:20:11 +01:00

56 lines
1.4 KiB
PowerShell

param(
[Parameter(Mandatory = $true)]
[string]$ProjectPath,
[string]$Version = "8.0.23"
)
# Namespace da aggiornare
$namespaces = @(
"Microsoft.EntityFrameworkCore",
"Microsoft.AspNetCore"
)
if (-not (Test-Path $ProjectPath)) {
Write-Host "ERRORE: Progetto non trovato: $ProjectPath" -ForegroundColor Red
exit 1
}
Write-Host "Progetto: $ProjectPath"
Write-Host "Versione target: $Version"
Write-Host "Analizzo pacchetti outdated..."
Write-Host ""
# Ottieni la lista dei pacchetti outdated
$outdated = dotnet list "$ProjectPath" package --outdated
if ($LASTEXITCODE -ne 0) {
Write-Host "Errore nell'esecuzione di 'dotnet list package'." -ForegroundColor Red
exit 1
}
foreach ($ns in $namespaces) {
$matches = $outdated | Select-String $ns
foreach ($m in $matches) {
$line = $m.ToString().Trim()
# Spezza la riga in colonne non vuote
$columns = $line -split "\s+" | Where-Object { $_ -ne "" }
# Il nome del pacchetto è la prima colonna che NON è ">"
$pkg = $columns | Where-Object { $_ -ne ">" } | Select-Object -First 1
if (-not $pkg) {
Write-Host " Riga non riconosciuta: $line" -ForegroundColor Yellow
continue
}
Write-Host " -> Aggiorno $pkg a $Version"
dotnet add "$ProjectPath" package $pkg --version $Version
}
}
Write-Host ""
Write-Host "Aggiornamento completato."