如何在Visual Studio Online Build定义中将参数传递给NuGet?

DJ *_*man 4 visual-studio-2013 nuget-package-restore azure-devops azure-pipelines

我有一个包含多个项目的解决方案,它已签入TFS(Visual Studio Team Services).我只希望其中一个项目(以及它的依赖项)构建并部署到我创建的Azure Web站点.我的解决方案及其项目遵循本指南中的NuGet 2.7+自动包恢复方法.在我的本地Visual Studio 2013环境中,一切都按预期工作.

我使用本指南在Team Services中创建了一个非常基本的部署版本,但是构建失败了,这个错误与NuGet有关:

******************************************************************************
Running tasks
******************************************************************************
******************************************************************************
Starting task: Build solution $/Path/To/My/Project.csproj
******************************************************************************
Executing the powershell script: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\VSBuild\1.0.16\VSBuild.ps1
C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\agent\worker\tools\NuGet.exe restore "C:\a\1\s\Path\To\My\Project.csproj" -NonInteractive
MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.
Cannot determine the packages folder to restore NuGet packages. Please specify either -PackagesDirectory or -SolutionDirectory.
Unexpected exit code 1 returned from tool NuGet.exe

我的问题是:我到底是怎么回事specify either -PackagesDirectory or -SolutionDirectory?我无法找到任何有关此问题的文件.

或者,也许我会以错误的方式解决这个问题?

Pas*_*ger 6

首先,您似乎使用过时的方法进行NuGet包还原(.nuget在版本控制中使用文件夹).有关此方法的局限性,请参阅此博客文章.

如果需要传递特定参数以nuget.exe进行包恢复,则应使用单独的"NuGet Installer"任务,该任务具有"NuGet Arguments"参数,您可以在该参数中为nuget.exe restore命令提供进一步的选项.

如果使用"NuGet Installer"任务进行包还原,则可以禁用"Visual Studio Build"任务中的"Restore NuGet Packages"选项.