56 lines
1.4 KiB
PowerShell
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."
|