我有一个包含多个项目的解决方案,它已签入TFS(Visual Studio Team Services)。我只希望其中一个项目(以及它的依赖项)构建并部署到我创建的Azure Web站点。我的解决方案及其项目遵循this guide的NuGet 2.7+自动包恢复方法。在我的本地Visual Studio 2013环境中,一切都按预期工作。
我使用this guide在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
的?我无法找到任何有关此问题的文件。
或者,或许我会以错误的方式解决这个问题?
答案 0 :(得分:6)
首先,您似乎使用过时的方法进行NuGet包还原(在版本控制中使用.nuget
文件夹)。有关此方法的局限性,请参阅this blog post。
如果需要将特定参数传递给nuget.exe
以进行包恢复,则应使用单独的“NuGet Installer”任务,该任务具有“NuGet Arguments”参数,您可以在其中为{{1}提供更多选项}命令。
如果使用“NuGet Installer”任务进行包还原,则可以禁用“Visual Studio Build”任务中的“Restore NuGet Packages”选项。