update README
This commit is contained in:
244
README.md
244
README.md
@ -1,30 +1,71 @@
|
||||
# NuGet Downloader
|
||||
|
||||
Утилита для скачивания NuGet пакетов вместе с их зависимостями в одну папку.
|
||||
Утилита для скачивания NuGet пакетов с зависимостями в одну папку.
|
||||
|
||||
## 🎯 Цель
|
||||
## Быстрый старт
|
||||
|
||||
Заменить сложную цепочку команд:
|
||||
```bash
|
||||
alias wnuget="mono /home/tactile/dev/dotnet/test-nuget-download/bin/nuget.exe"
|
||||
wnuget install Npgsql -OutputDirectory "./pg-cache" -Framework netstandard2.0
|
||||
find ./pg-cache -name "*.nupkg" -exec cp --parents -v {} ./pg-nuget-packages/ \;
|
||||
```
|
||||
# Скачать пакет с зависимостями
|
||||
./nuget-download.sh Npgsql
|
||||
|
||||
На простую команду:
|
||||
```bash
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./pg-nuget-packages
|
||||
# Указать framework и папку
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./my-packages
|
||||
|
||||
# Указать версию
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./my-packages 7.0.6
|
||||
|
||||
# Интерактивный режим
|
||||
./nuget-download.sh
|
||||
```
|
||||
|
||||
## Возможности
|
||||
|
||||
- ✅ Скачивание пакета с указанием версии или последней стабильной
|
||||
- ✅ Выбор целевого framework (netstandard2.0, net6.0, net8.0 и др.)
|
||||
- ✅ Автоматическое скачивание всех зависимостей
|
||||
- ✅ Сохранение всех пакетов в одну папку
|
||||
- ✅ Поддержка различных источников NuGet
|
||||
- ✅ Интерактивный режим (запрос параметров)
|
||||
- ✅ Удобный bash скрипт с поддержкой версий
|
||||
- ✅ Автоматическое скачивание зависимостей
|
||||
- ✅ Выбор framework (netstandard2.0, net6.0, net8.0)
|
||||
- ✅ Указание версии пакета
|
||||
- ✅ Интерактивный режим
|
||||
- ✅ Кроссплатформенность
|
||||
|
||||
## Использование
|
||||
|
||||
### Bash скрипт (рекомендуется)
|
||||
```bash
|
||||
./nuget-download.sh <package-id> [framework] [output-dir] [version]
|
||||
```
|
||||
|
||||
### Прямой запуск
|
||||
```bash
|
||||
dotnet run --package-id Npgsql --framework netstandard2.0 --output-dir ./packages --version 7.0.6
|
||||
```
|
||||
|
||||
## Параметры
|
||||
|
||||
- `package-id` - ID пакета (обязательный)
|
||||
- `framework` - Framework (по умолчанию netstandard2.0)
|
||||
- `output-dir` - Папка назначения (по умолчанию ./nuget-packages)
|
||||
- `version` - Версия пакета (по умолчанию последняя стабильная)
|
||||
|
||||
## Примеры
|
||||
|
||||
```bash
|
||||
# Базовое использование
|
||||
./nuget-download.sh Npgsql
|
||||
|
||||
# С framework
|
||||
./nuget-download.sh Npgsql net6.0
|
||||
|
||||
# С папкой назначения
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./my-packages
|
||||
|
||||
# С версией
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./packages 7.0.6
|
||||
|
||||
# Интерактивный режим
|
||||
./nuget-download.sh
|
||||
|
||||
# Справка
|
||||
./nuget-download.sh --help
|
||||
```
|
||||
|
||||
## Сборка
|
||||
|
||||
@ -32,169 +73,20 @@ find ./pg-cache -name "*.nupkg" -exec cp --parents -v {} ./pg-nuget-packages/ \;
|
||||
dotnet build
|
||||
```
|
||||
|
||||
## Использование
|
||||
## Безопасность
|
||||
|
||||
### Через скрипт (рекомендуется)
|
||||
✅ Все NuGet пакеты обновлены до безопасных версий (6.14.0)
|
||||
|
||||
## Замена старого подхода
|
||||
|
||||
**Было:**
|
||||
```bash
|
||||
# Базовое использование
|
||||
./nuget-download.sh Npgsql
|
||||
|
||||
# С указанием framework
|
||||
./nuget-download.sh Npgsql netstandard2.0
|
||||
|
||||
# С указанием папки назначения
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./my-packages
|
||||
|
||||
# С указанием версии
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./my-packages 7.0.6
|
||||
|
||||
# Интерактивный режим (запуск без параметров)
|
||||
./nuget-download.sh
|
||||
|
||||
# Справка
|
||||
./nuget-download.sh --help
|
||||
alias wnuget="mono /path/to/nuget.exe"
|
||||
wnuget install Npgsql -OutputDirectory "./cache" -Framework netstandard2.0
|
||||
find ./cache -name "*.nupkg" -exec cp {} ./packages/ \;
|
||||
```
|
||||
|
||||
### Через dotnet run
|
||||
|
||||
**Стало:**
|
||||
```bash
|
||||
# Базовое использование
|
||||
dotnet run -- --package-id Npgsql --framework netstandard2.0
|
||||
|
||||
# С указанием версии
|
||||
dotnet run -- --package-id Npgsql --version 7.0.6 --framework netstandard2.0
|
||||
|
||||
# С указанием папки назначения
|
||||
dotnet run -- --package-id Npgsql --framework netstandard2.0 --output-dir ./my-packages
|
||||
|
||||
# Полный пример
|
||||
dotnet run -- \
|
||||
--package-id Npgsql \
|
||||
--version 7.0.6 \
|
||||
--framework netstandard2.0 \
|
||||
--output-dir ./pg-nuget-packages \
|
||||
--source https://api.nuget.org/v3/index.json
|
||||
```
|
||||
|
||||
## Параметры
|
||||
|
||||
### Для скрипта `nuget-download.sh`:
|
||||
- `package-id` - ID пакета для скачивания (обязательный)
|
||||
- `framework` - Целевой framework (по умолчанию netstandard2.0)
|
||||
- `output-dir` - Папка для сохранения пакетов (по умолчанию ./nuget-packages)
|
||||
- `version` - Версия пакета (по умолчанию последняя стабильная)
|
||||
|
||||
### Для `dotnet run`:
|
||||
- `--package-id` - ID пакета для скачивания (обязательный)
|
||||
- `--version` - Версия пакета (по умолчанию последняя стабильная)
|
||||
- `--framework` - Целевой framework (по умолчанию netstandard2.0)
|
||||
- `--output-dir` - Папка для сохранения пакетов (по умолчанию ./nuget-packages)
|
||||
- `--source` - Источник NuGet (по умолчанию https://api.nuget.org/v3/index.json)
|
||||
|
||||
## Примеры frameworks
|
||||
|
||||
- `netstandard2.0` - .NET Standard 2.0
|
||||
- `net6.0` - .NET 6
|
||||
- `net8.0` - .NET 8
|
||||
- `net472` - .NET Framework 4.7.2
|
||||
|
||||
## Сравнение с вашим предыдущим подходом
|
||||
|
||||
**Старый подход:**
|
||||
```bash
|
||||
alias wnuget="mono /home/tactile/dev/dotnet/test-nuget-download/bin/nuget.exe"
|
||||
wnuget install Npgsql -OutputDirectory "./pg-cache" -Framework netstandard2.0
|
||||
find ./pg-cache -name "*.nupkg" -exec cp --parents -v {} ./pg-nuget-packages/ \;
|
||||
```
|
||||
|
||||
**Новый подход:**
|
||||
```bash
|
||||
# Через скрипт (проще)
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./pg-nuget-packages
|
||||
|
||||
# Или через dotnet run
|
||||
dotnet run -- --package-id Npgsql --framework netstandard2.0 --output-dir ./pg-nuget-packages
|
||||
```
|
||||
|
||||
## Преимущества новой утилиты
|
||||
|
||||
1. **Одна команда** - вместо цепочки команд
|
||||
2. **Автоматическое разрешение зависимостей** - не нужно вручную копировать файлы
|
||||
3. **Выбор framework** - встроенная поддержка
|
||||
4. **Гибкость** - легко добавить новые возможности
|
||||
5. **Кроссплатформенность** - работает на Windows, Linux, macOS
|
||||
6. **Современный .NET** - использует последние версии библиотек NuGet
|
||||
7. **Простота использования** - удобный bash скрипт
|
||||
8. **Подробный вывод** - показывает процесс скачивания и зависимости
|
||||
|
||||
## Примеры работы
|
||||
|
||||
### Скачивание пакета без зависимостей
|
||||
```bash
|
||||
./nuget-download.sh Npgsql netstandard2.0
|
||||
# Результат: 1 файл Npgsql.9.0.3.nupkg
|
||||
```
|
||||
|
||||
### Скачивание пакета с зависимостями
|
||||
```bash
|
||||
./nuget-download.sh System.Text.Json netstandard2.0
|
||||
# Результат: 10 файлов включая все зависимости
|
||||
```
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
├── Program.cs # Основной код утилиты
|
||||
├── NuGetDownloader.csproj # Файл проекта .NET
|
||||
├── nuget-download.sh # Bash скрипт с интерактивным режимом
|
||||
├── README.md # Документация
|
||||
└── [папки с результатами] # Скачанные пакеты
|
||||
```
|
||||
|
||||
## 🆕 Последние улучшения
|
||||
|
||||
### ✅ Добавлена поддержка версий
|
||||
Теперь можно указать конкретную версию пакета:
|
||||
```bash
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./my-packages 7.0.6
|
||||
```
|
||||
|
||||
### ✅ Добавлен интерактивный режим
|
||||
При запуске без параметров скрипт запрашивает все необходимые данные:
|
||||
```bash
|
||||
./nuget-download.sh
|
||||
# Введите ID пакета: Npgsql
|
||||
# Введите framework [netstandard2.0]:
|
||||
# Введите папку назначения [./nuget-packages]:
|
||||
# Введите версию (пусто для последней стабильной): 7.0.6
|
||||
```
|
||||
|
||||
## ✅ Готово!
|
||||
|
||||
Утилита полностью готова к использованию. Она успешно заменяет вашу предыдущую цепочку команд и предоставляет дополнительные возможности:
|
||||
|
||||
- ✅ Автоматическое скачивание зависимостей
|
||||
- ✅ Выбор framework
|
||||
- ✅ Удобный bash скрипт с поддержкой версий
|
||||
- ✅ Интерактивный режим (запрос параметров)
|
||||
- ✅ Подробный вывод процесса
|
||||
- ✅ Кроссплатформенность
|
||||
- ✅ Современный .NET 8
|
||||
- ✅ Указание конкретной версии пакета
|
||||
|
||||
### Быстрый старт
|
||||
|
||||
```bash
|
||||
# Скачать Npgsql с зависимостями
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./my-packages
|
||||
|
||||
# Скачать System.Text.Json (много зависимостей)
|
||||
./nuget-download.sh System.Text.Json netstandard2.0 ./json-packages
|
||||
|
||||
# Скачать конкретную версию Npgsql
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./my-packages 7.0.6
|
||||
|
||||
# Интерактивный режим
|
||||
./nuget-download.sh
|
||||
./nuget-download.sh Npgsql netstandard2.0 ./packages
|
||||
```
|
||||
Reference in New Issue
Block a user