Что такое командная строка для установки последней версии пакета Nuget XYZ в папку XYZ \ 1.2.3? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть следующий скрипт 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
}

Он выполняет следующие действия:

  1. Загружает nuget.exe, если не найден в каталоге пакета
  2. Устанавливает данный пакет в каталоге пакета.Таким образом, для пакета XYZ, имеющего последнюю версию 1.2.3, он создает каталог XYZ.1.2.3 под указанным каталогом пакета.
  3. Пытается угадать путь к основной сборке пакета и возвращает его.

Я хочу, чтобы пакет был в XYZ \ 1.2.3, а не в XYZ.1.2.3

Как мне это сделать?

PS

Я буду рад любым другим улучшениям скрипта, потому что я новичок в nuget и, возможно, все делаю неправильно.

1 Ответ

0 голосов
/ 23 декабря 2018

Ответ заключается в использовании команды добавления nuget, как описано здесь - https://docs.microsoft.com/en-us/nuget/tools/cli-ref-add

Этот макет называется иерархическим источником.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...