Azure DevOps构建管道中的NuGet包还原

时间:2019-09-06 13:29:27

标签: azure-devops tfsbuild azure-pipelines nuget-package-restore azure-devops-server-2019

这是我昨天遇到的一个问题的后续活动:NuGet package restore in builds and Visual Studio

此后,我从VS2013解决方案中删除了“ .nuget”解决方案文件夹,但是,构建管道中的“ Visual Studio构建”任务现在失败了,每个项目都有一个错误:

  

[错误] xxxxx.csproj(214,5):错误:该项目引用了此计算机上缺少的NuGet软件包。启用NuGet软件包还原以下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是c:\ Temp \ VSTS Agent_work \ 10 \ s \ xxxxx \ .nuget \ NuGet.targets。

我尝试检查VS构建任务中的“还原NuGet软件包”选项,但这没有什么区别。复选框说此选项已被弃用,并且要使用“ Nuget工具安装程序”任务-我也尝试过此方法,但仍然无济于事。

我什至在我的构建管道中添加了一个“ Nuget(command = restore)”任务。其输出显示已将Nuget软件包还原到解决方案的\ packages文件夹中,但再次没有乐趣。

我已经检查了.csproj文件中的相对程序包路径,它们正确指向了通过上述“ Nuget restore”任务恢复的程序包文件夹。

我是否缺少某些东西,或者是仅将“ .nuget”解决方案文件夹放回原处的解决方法?

1 个答案:

答案 0 :(得分:2)

找到答案:我需要从我的每个.csproj文件中删除软件包还原的“旧方法”的残余,即:

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

按照此SO答案:https://stackoverflow.com/a/23852183/981831