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

.NET Core Jenkins构建失败:无法从Artifactory获取librdkafka NuGet包

问题解答

你的假设成立

NuGet解析包依赖时,会通过包的注册页面遍历版本信息来确定兼容性——哪怕你的项目直接引用的是新版本,也可能因为间接依赖、版本范围协商等原因需要读取旧版本的注册元数据。如果Artifactory缓存仓库里只存在librdkafka.redist.2.5.0.nupkg文件,但缺失对应旧版本的注册分页数据,就会触发"Failed to parse registration page"错误,导致依赖获取失败。

解决方法

  • 手动同步缺失的版本元数据
    直接访问Artifactory中librdkafka.redist注册页面里的分页链接(从index.json中找到的旧版本分页URL),强制Artifactory从上游NuGet源拉取并缓存这些分页的元数据;也可以在Artifactory后台找到对应的远程缓存仓库,手动触发包的全量版本同步。

  • 锁定依赖版本
    在项目的.csproj文件中明确指定librdkafka和librdkafka.redist的版本号,避免NuGet遍历版本范围:

    <PackageReference Include="librdkafka" Version="2.5.0" />
    <PackageReference Include="librdkafka.redist" Version="2.5.0" />
    

    这样NuGet只会尝试获取指定版本,无需读取旧版本的注册信息。

  • 调整Artifactory缓存策略
    检查Artifactory远程仓库的缓存配置:

    • 确认是否启用了"不缓存依赖缺失的包"类选项,这类配置可能导致部分版本元数据被跳过缓存;
    • 检查"检索缓存周期"设置,若周期过短可能导致旧版本元数据被自动清理,需调整为合理时长。
  • 清理容器内NuGet缓存
    在OpenShift构建容器中执行以下命令清理本地NuGet缓存,避免损坏的缓存数据干扰:

    dotnet nuget locals all --clear
    

    之后重新执行构建流程。

内容的提问来源于stack exchange,提问作者Ondřej Kareš

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 09:37:40