У меня есть следующий скрипт Powershell:
param(
[Parameter(Mandatory = $true, Position = 1)]$PackageId,
$PackagesDir = "$env:USERPROFILE\.nuget\packages",
$Flavour = 'net462',
$Source)
if (-not (Test-Path "$PackagesDir\nuget.exe"))
{
mkdir $PackagesDir -ErrorAction SilentlyContinue
curl -Uri "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" -OutFile "$PackagesDir\nuget.exe"
}
if ($Source)
{
$SourceSwitch = "-Source","$Source"
}
&"$PackagesDir\nuget.exe" install $PackageId -OutputDirectory $PackagesDir -NonInteractive $SourceSwitch
$PkgDir = $(&"$PackagesDir\nuget.exe" list $PackageId -source $PackagesDir) -replace ' ','.'
$Base = "$PackagesDir\$PkgDir\lib\$Flavour\$PackageId"
@{
Path = (dir "$Base.dll","$Base.exe" -ErrorAction SilentlyContinue).FullName
}
Он выполняет следующие действия:
- Загружает nuget.exe, если не найден в каталоге пакета
- Устанавливает данный пакет в каталоге пакета.Таким образом, для пакета XYZ, имеющего последнюю версию 1.2.3, он создает каталог XYZ.1.2.3 под указанным каталогом пакета.
- Пытается угадать путь к основной сборке пакета и возвращает его.
Я хочу, чтобы пакет был в XYZ \ 1.2.3, а не в XYZ.1.2.3
Как мне это сделать?
PS
Я буду рад любым другим улучшениям скрипта, потому что я новичок в nuget и, возможно, все делаю неправильно.