如何在 Visual Studio 在线构建定义中将参数传递给 NuGet?
How do I pass parameters to NuGet in a Visual Studio Online Build definition?
我有一个包含多个项目的解决方案,其中已签入 TFS(Visual Studio Team Services)。我只希望构建其中一个项目(及其依赖项)并将其部署到我创建的 Azure 网站。根据 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.0.16\VSBuild.ps1
C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\agent\worker\tools\NuGet.exe restore "C:\a\s\Path\To\My\Project.csproj" -NonInteractive
MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild.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
?我找不到与此相关的任何文档。
或者,也许我完全以错误的方式处理这个问题?
首先,您似乎使用了过时的 NuGet 包还原方法(在版本控制中使用 .nuget
文件夹)。有关此方法的局限性的文章,请参阅 this blog post。
如果您需要将特定参数传递给 nuget.exe
以进行包恢复,您应该使用单独的 "NuGet Installer" 任务,它有一个 "NuGet Arguments" 参数,您可以在其中为nuget.exe restore
命令。
如果您使用 "NuGet Installer" 任务进行包恢复,您可以禁用 "Visual Studio Build" 任务中的 "Restore NuGet Packages" 选项。
我有一个包含多个项目的解决方案,其中已签入 TFS(Visual Studio Team Services)。我只希望构建其中一个项目(及其依赖项)并将其部署到我创建的 Azure 网站。根据 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.0.16\VSBuild.ps1 C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\agent\worker\tools\NuGet.exe restore "C:\a\s\Path\To\My\Project.csproj" -NonInteractive MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild.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
?我找不到与此相关的任何文档。
或者,也许我完全以错误的方式处理这个问题?
首先,您似乎使用了过时的 NuGet 包还原方法(在版本控制中使用 .nuget
文件夹)。有关此方法的局限性的文章,请参阅 this blog post。
如果您需要将特定参数传递给 nuget.exe
以进行包恢复,您应该使用单独的 "NuGet Installer" 任务,它有一个 "NuGet Arguments" 参数,您可以在其中为nuget.exe restore
命令。
如果您使用 "NuGet Installer" 任务进行包恢复,您可以禁用 "Visual Studio Build" 任务中的 "Restore NuGet Packages" 选项。