azure-devops - Azure DevOps 构建管道中的 NuGet 包还原
问题描述
这是我昨天提出的问题的后续: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”解决方案文件夹放回原处的唯一解决方法?
解决方案
找到了答案:我需要从我的每个 .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
推荐阅读
- javascript - 如何防止在输入字段中输入代码执行(内联 js)和脚本标签
- ios - 如何从我的 iOS 应用程序中将 PKPass 添加到 Apple Wallet?
- python - 无法在 VScode 中使用 jupyter notebook
- python - 如何在张量流中对张量进行子集化?
- python - 对象没有属性,但定义了属性,不确定是否有缩进问题
- json - 只有在按下 a 时,程序才需要打印“you press A”。但是当我检查 IF 语句时,它会通过它并转到 else
- python - 修改在多项式方程中替换的 python 列表/数组的值
- python - 类型错误:“NoneType”对象不可下标
- javascript - 为什么在 React 购物车中更改商品数量时总价计算不起作用?
- python - 用于添加异常的正则表达式代码 - python