Visual studio 2015 Release Nuget无法将参数绑定到参数';路径';

Visual studio 2015 Release Nuget无法将参数绑定到参数';路径';,visual-studio-2015,nuget,azure-devops,Visual Studio 2015,Nuget,Azure Devops,我正在使用Visual Studio团队服务。问题在于包含NuGet Publisher任务的发布定义。我有一个精确的NuGet Publisher配置,在构建配置中可以很好地工作,所以我得到的印象是,将其设置为在发行版上运行还有很多事情要做。错误是: Starting task: NuGet Publisher Set workingFolder to default: C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\

我正在使用Visual Studio团队服务。问题在于包含NuGet Publisher任务的发布定义。我有一个精确的NuGet Publisher配置,在构建配置中可以很好地工作,所以我得到的印象是,将其设置为在发行版上运行还有很多事情要做。错误是:

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
我的构建配置文件中存在与发布配置文件中相同的环境变量。在发布概要文件中,只有Nuget发布步骤,没有Packager步骤。此“path”变量是否需要来自打包程序/编译步骤?我不认为会有这样的相互依赖

您只需使用VisualStudio模板创建一个新的构建,就可以复制这个特性。然后在“工件”步骤之前添加NuGet Packager和NuGet Publisher步骤。我喜欢将我的nupkg输出到
$(BuildConfiguration)
目录以保持一致。这个很好

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

问题在“Nuget Publisher”任务中。它在PowerShell脚本中使用“AGENT_BUILDDIRECTORY”变量,而该变量适用于“Build”,但不适用于“Release”。因此,“Release”中的值为null。您可以在此页面上提交用户语音:

现在,如果您正在使用For“Release”,可以转到构建代理工作文件夹“agent\tasks\NuGetPublisher\0.1.39\”。更新吹入“vsonGetHelper.ps1”的行: 发件人:

致:

通过此更改,发布将顺利完成,不会出现任何错误


如果您使用的是Hosted Build agent,则可以创建PowerShell脚本并将其添加到发布定义中以发布nuget包。有关详细信息,请参阅此代码:

此问题已通过最近的团队服务部署得到解决。

参数“Path”是提供给NuGetPublisher.ps1中的commandlet或函数的参数的名称。在该文件中查看传递给Path参数的内容。例如,测试路径-路径$SomeLocalVariableUnderstanding。我想保持价值来源的一致性。我将在上面添加进一步的复制注释。就可以在VSTS构建中看到的内容而言,设置了一个路径掩码。我不确定映射到哪个参数。但是,我在构建和发布之间设置相同,发布是唯一抛出“Path”错误的版本。用户语音项的标题是什么?我将投票表决up@DrydenMaker没有为此提交任何用户声音,您可以提交一个。很好,我认为我没有仔细查看。谢谢我创造了它。对于发现这一点的人,请投票:
$nuGetTempDirectory = Join-Path $Env:AGENT_BUILDDIRECTORY "NuGet\"
$nuGetTempDirectory = Join-Path $Env:SYSTEM_DEFAULTWORKINGDIRECTORY "NuGet\"