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

Travis构建失败报错:无法定位dotnet-sdk-2.0.0包求排查建议

排查Travis CI构建中"Unable to locate package dotnet-sdk-2.0.0"错误的实用建议

首先,我完全理解这种"之前好好的突然就挂了"的崩溃感——毕竟配置没动过,结果构建直接报错找不到包,确实头疼。结合你给出的.travis.yml配置和构建日志,我整理了几个针对性的排查方向:

1. 优先排查镜像源的版本支持问题

你当前用的是dist: trusty(对应Ubuntu 14.04),这个版本的Ubuntu已经停止官方维护很久了,Travis CI也逐步移除了旧版软件源里的过时包,其中就包括.NET Core 2.0 SDK。这大概率是构建突然失败的核心原因。

解决办法:
尝试把dist字段升级到较新的仍受支持的版本,比如dist: xenial(Ubuntu 16.04)或者dist: focal(Ubuntu 20.04),同时保留dotnet: 2.0.0配置,看看是否能正常拉取包。如果还是不行,那说明这个版本的.NET SDK已经完全从Travis的镜像源中移除了。

2. 手动注入官方软件源(仅当必须保留.NET 2.0时)

如果你暂时无法升级项目的.NET版本,可以尝试在构建前手动添加微软官方的.NET Core软件源,覆盖Travis默认的源。修改你的.travis.yml,添加before_install步骤:

before_install:
  # 添加微软官方Ubuntu 14.04软件源
  - wget -q https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-prod.deb
  - sudo dpkg -i packages-microsoft-prod.deb
  - sudo apt-get update -qq

这样先更新软件源,再让Travis尝试安装dotnet-sdk-2.0.0,大概率能解决找不到包的问题。

3. 长远方案:升级到受支持的.NET版本

.NET Core 2.0早在2018年10月就结束了官方支持,不仅是Travis CI,后续还可能遇到更多兼容性、安全性问题。建议把项目升级到LTS版本(比如.NET 6或.NET 8),然后更新.travis.yml中的dotnet字段到对应版本,比如:

dotnet: 6.0

这样既能获得持续的官方支持,也能避免旧镜像源带来的各种问题。

4. 临时验证镜像内的可用包

如果想确认当前镜像里到底有没有dotnet-sdk-2.0.0,可以在构建脚本里加一个调试命令,比如在before_script前添加:

before_script:
  - apt-cache search dotnet-sdk
  - chmod +x build.sh
  - chmod +x run-tests.sh

这样能看到当前环境中可安装的所有.NET SDK包,帮助你确认是不是真的没有目标版本。


附你提供的原始配置和错误日志:

原始.travis.yml配置

language: csharp
dist: trusty
sudo: required
mono: none
dotnet: 2.0.0
solution: Dibware.Salon.sln
addons:
  sonarcloud:
    organization: "dibley1973-github"
    token:
      secure: $SONAR_TOKEN
branches:
  only:
    - master
before_script:
  - chmod +x build.sh
  - chmod +x run-tests.sh
script:
  - ./build.sh
  - ./run-tests.sh
  - sonar-scanner

核心错误日志

C# support for Travis-CI is community maintained. Please open any issues at https://travis-ci.community/c/languages/37-category and cc @joshua-anderson @akoeplinger @nterry
Installing .NET Core
$ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
$ export DOTNET_CLI_TELEMETRY_OPTOUT=1
7.67s0.49sE: Unable to locate package dotnet-sdk-2.0.0
E: Couldn't find any package by glob 'dotnet-sdk-2.0.0'
E: Couldn't find any package by regex 'dotnet-sdk-2.0.0'
The command "sudo apt-get install -qq dotnet-sdk-2.0.0" failed and exited with 100 during . Your build has been stopped.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:26:31