将Nuget软件包XYZ的最新版本安装到XYZ \ 1.2.3文件夹中的命令行是什么?

时间:2018-10-18 23:26:51

标签: nuget

我有以下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. 将给定的软件包安装在package目录下。因此,对于具有最新版本1.2.3的软件包XYZ,它将在给定的软件包目录下创建一个目录XYZ.1.2.3。
  3. 尝试猜测主软件包的路径并返回。

我希望软件包位于XYZ \ 1.2.3中,而不是XYZ.1.2.3中

我该怎么做?

P.S。

对于脚本的其他改进,我将感到高兴,因为我是nuget的新手,可能做错了所有事情。

1 个答案:

答案 0 :(得分:0)

答案是按此处所述使用nuget add命令- https://docs.microsoft.com/en-us/nuget/tools/cli-ref-add

此布局称为分层源。