【问题标题】:NuGet package restore in Azure DevOps build pipelineAzure DevOps 构建管道中的 NuGet 包还原
【发布时间】:2020-01-09 09:20:01
【问题描述】:

这是我昨天提出的问题的后续: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 还原”任务恢复的包文件夹。

我是否遗漏了什么,或者是唯一可以将“.nuget”解决方案文件夹放回原处的方法?

【问题讨论】:

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


    【解决方案1】:

    找到答案:我需要从我的每个 .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

    【讨论】:

      猜你喜欢
      • 2021-08-09
      • 2023-01-17
      • 2020-05-27
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      相关资源
      最近更新 更多