Visual Studio Team Services 持续集成:NuGet 恢复任务失败

Visual Studio Team Services Continuous Integration: NuGet Restore Task Failed

我正在使用 Team Services 中的持续集成功能(Visual Studio 在线)。我的构建定义针对解决方案(不是整个解决方案)中的特定项目,即 ClientUI MVC 网站。

解决方案包含三个项目:

  1. 客户端界面
  2. AdminUI
  3. 客户服务

ClientUI 项目的构建定义:

存储库:

Nuget 安装程序 步骤: 我尝试了不同的参数但没有用。

Visual Studio 构建

在尝试以单个项目为目标之前,我的构建定义是使用以下参数以整个解决方案为目标:

  1. NuGet 安装程序 -> 解决方案路径: **\*.sln
  2. Visual Studio 构建 -> 解决方案: **\*.sln ; MSBuild 参数: /p:outdir=$(build.artifactstagingdirectory)

它正在工作。但是现在,它在 Nugget 还原任务中生成此错误:

2016-04-22T21:07:00.6716725Z Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents.98.1\tasks\NuGetInstaller[=11=].1.25
2016-04-22T21:07:00.8163908Z Executing the powershell script: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents.98.1\tasks\NuGetInstaller[=11=].1.25\NuGetInstaller.ps1


2016-04-22T21:07:01.5283529Z ##[error]Cannot find path 'C:\a\s\packages.config' because it does not exist.
2016-04-22T21:07:01.5439897Z C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents.98.1\agent\worker\tools\NuGet.exe restore "C:\a\s\packages.config"  -NonInteractive


2016-04-22T21:07:03.0441507Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild.0\bin'.


2016-04-22T21:07:03.0597010Z ##[error]Cannot determine the packages folder to restore NuGet packages. Please specify either -PackagesDirectory or -SolutionDirectory.
2016-04-22T21:07:03.0909881Z ##[error]Unexpected exit code 1 returned from tool NuGet.exe

尝试为 "Nuget Installer" 任务将 "Installation type" 设置为 "Install",因为您正在使用 "packages.config" 安装软件包。

我通过更改映射解决了同样的问题 - 转到“存储库”选项卡,我将映射到另一个目录,这意味着 nuget 安装程序无法执行。

对于任何好奇的人,关于 "Please specify either -PackagesDirectory or -SolutionDirectory" 的错误来源是构建过程试图发出类似于此的命令:

C:\hostedtoolcache\windows\NuGet.4.1\x64\nuget.exe restore D:\a\s\MyProject\packages.config -PackagesDirectory packages -Verbosity Detailed -NonInteractive 

如果你想构建一个项目(而不是解决方案)并且你的 nuget "packages" 文件夹在解决方案级别,下面的截图应该会有所帮助。

此外,您可能需要在项目的构建任务中将其指定为 "MSBuild Argument":/p:SolutionDir="/"