You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps .NET Core流水线NuGet还原无法识别本地包问题求助

问题原因

你当前配置的NuGet还原任务仅启用了nuget.org官方源,没有将仓库内存储私有包的本地目录加入还原源列表,因此无法识别本地目录下的私有NuGet包。另外你配置中填写的packagesToPush是NuGet推送命令专属参数,在还原场景下完全无效,可以直接删除。

解决方案

方案1:使用nuget.config配置文件(推荐,可保证本地开发环境与流水线配置一致)

  1. 在代码仓库根目录新建nuget.config文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="本地私有包源" value=".\NuPackages" />
  </packageSources>
</configuration>
  1. 修改流水线中的NuGet还原任务配置:
- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'config'
    nugetConfigPath: 'nuget.config' # 若配置文件不在根目录,需修改为对应相对路径
    allowPackageConflicts: true

方案2:直接在流水线任务中指定本地源

无需新增配置文件,直接修改原NuGet还原任务,添加本地包目录为额外源即可:

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'select'
    includeNuGetOrg: true
    nugetSources: '$(Build.SourcesDirectory)/NuPackages'
    allowPackageConflicts: true

可选排查项

如果修改配置后仍报错,可按以下顺序排查:

  • 确认仓库中NuPackages目录路径正确,目录下存在报错提示的UnifiedAutomation.UaBase.BouncyCastle包
  • 确认包的ID、版本与项目文件中引用的信息完全一致
  • 可在还原任务前添加一步命令行任务,执行dir $(Build.SourcesDirectory)\NuPackages打印目录内容,确认流水线拉取代码后该目录及包文件确实存在

内容的提问来源于stack exchange,提问作者JEKES

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:15:05