50 lines
1.9 KiB
PowerShell
50 lines
1.9 KiB
PowerShell
# === НАСТРОЙКИ ===
|
||
$NuGetExePath = ".\nuget.exe" # Путь к nuget.exe
|
||
$PackageSourceName = "azure-microservices-core" # Ключ из nuget.config (source key)
|
||
$DownloadDir = "C:\Temp\nupkg_need" # Куда сохранять .nupkg
|
||
# ===============
|
||
|
||
# Проверка nuget.exe
|
||
if (-not (Test-Path $NuGetExePath)) {
|
||
Write-Error "Файл nuget.exe не найден: $NuGetExePath"
|
||
exit 1
|
||
}
|
||
|
||
# Создаём папку
|
||
if (-not (Test-Path $DownloadDir)) {
|
||
New-Item -ItemType Directory -Path $DownloadDir | Out-Null
|
||
}
|
||
|
||
Write-Host "Получаем список пакетов из источника: $PackageSourceName ..."
|
||
|
||
# Получаем все пакеты и версии через nuget list
|
||
$packages = & $NuGetExePath list -AllVersions -Source $PackageSourceName 2>$null
|
||
|
||
if ($LASTEXITCODE -ne 0 -or $null -eq $packages) {
|
||
Write-Error "Не удалось получить список пакетов из источника '$PackageSourceName'"
|
||
Write-Error "Убедитесь, что имя источника правильное и он есть в nuget.config"
|
||
exit 1
|
||
}
|
||
|
||
Write-Host "Найдено пакетов: $($packages.Count)`n"
|
||
|
||
foreach ($line in $packages) {
|
||
$parts = $line.Trim() -split '\s+', 2
|
||
if ($parts.Count -lt 2) { continue }
|
||
|
||
$id = $parts[0]
|
||
$version = $parts[1]
|
||
|
||
Write-Host "Скачиваю $id ($version) ..."
|
||
|
||
# Используем nuget install, чтобы скачать .nupkg (без зависимостей, если повезёт)
|
||
& $NuGetExePath install $id -Version $version -Source $PackageSourceName -OutputDirectory $DownloadDir -NonInteractive
|
||
|
||
if ($LASTEXITCODE -eq 0) {
|
||
Write-Host "Успешно" -ForegroundColor Green
|
||
} else {
|
||
Write-Warning "Ошибка при скачивании $id ($version)"
|
||
}
|
||
}
|
||
|
||
Write-Host "`nГотово. Пакеты сохранены в: $DownloadDir" |