Release Nuget无法将参数绑定到参数'Path'

时间:2016-01-11 17:31:18

标签: visual-studio-2015 nuget azure-devops

我正在使用Visual Studio Team Services。问题在于包含NuGet Publisher任务的发行版定义。我有一个确切的NuGet Publisher配置在Build配置中运行良好,所以我得到的印象是将其设置为在Release上运行还有更多。错误是:

Starting task: NuGet Publisher     
Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\NuGetPublisher\0.1.39
Executing the powershell script: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\default\tasks\NuGetPublisher\0.1.39\NuGetPublisher.ps1
##[error]Cannot bind argument to parameter 'Path' because it is null.
##[error]Cannot bind argument to parameter 'Path' because it is null.
Check/Set nuget path

我的构建配置文件中存在与发布配置文件中相同的环境变量。在Release配置文件中,只有Nuget Publish步骤没有Packager步骤。这个'path'变量是否需要来自打包器/编译步骤?我不认为会有这样的相互依赖。

您只需使用Visual Studio模板创建新版本即可重现此问题。然后在'Artifacts'步骤之前添加NuGet Packager和NuGet Publisher步骤。我喜欢将我的nupkg输出到$(BuildConfiguration)目录以保持一致。这很好。

接下来,禁用发布步骤。然后使用Empty模板创建Release配置文件。添加NuGet Publisher步骤。链接到上一步中Build构件的工件源,然后释放。这将导致错误。

2 个答案:

答案 0 :(得分:0)

问题出在" Nuget Publisher"任务。它使用" AGENT_BUILDDIRECTORY" PowerShell脚本中的变量,而此变量适用于" Build"但不适用于"发布"。因此," Release"中的值为null。您可以在此页面上提交用户语音:http://visualstudio.uservoice.com/forums/330519-team-services

目前,如果您使用your own build agent进行"发布",您可以转到构建代理工作文件夹" agent \ tasks \ NuGetPublisher \ 0.1.39 \&# 34 ;.更新" VsoNuGetHelper.ps1": 从:

$nuGetTempDirectory = Join-Path $Env:AGENT_BUILDDIRECTORY "NuGet\"

要:

$nuGetTempDirectory = Join-Path $Env:SYSTEM_DEFAULTWORKINGDIRECTORY "NuGet\"

通过此更改,发布将在没有成功任何错误的情况下完成。

如果您使用的是Hosted Build代理,则可以创建PowerShell脚本并将其添加到版本定义中以发布nuget包。您可以参考此代码了解详细信息:https://github.com/Microsoft/vso-agent-tasks/blob/master/Tasks/NugetPublisher/NuGetPublisher.ps1

答案 1 :(得分:0)

最近部署的Team Services已修复此问题。