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

Gitea Action Runner无法针对.NET 8构建应用的问题求助

解决Gitea Action Runner无法识别已安装.NET 8 SDK的问题

核心问题分析

Runner进程默认使用了.NET 7.0.401 SDK,未识别到已安装的.NET 8 SDK,导致构建.NET 8项目时触发NETSDK1045错误。以下是针对性的解决方法:

1. 检查项目的global.json配置

项目根目录的global.json会强制指定SDK版本,若存在该文件且锁定了.NET 7版本,会导致Runner无法使用.NET 8:

  • 查看项目中的global.json内容:
    {
      "sdk": {
        "version": "7.0.401"
      }
    }
    
  • 修改为.NET 8版本,或添加版本向前兼容配置:
    {
      "sdk": {
        "version": "8.0.407",
        "rollForward": "latestMajor"
      }
    }
    
  • 若无需强制SDK版本,直接删除global.json即可。

2. 重启Gitea Runner服务

Runner启动时可能未加载更新后的环境变量,导致PATH中未包含.NET 8 SDK路径:

  • 打开Windows服务管理器,找到Gitea Runner对应的服务,右键选择重启。
  • 或在Runner安装目录下执行命令重启进程:
    ./runner.exe stop
    ./runner.exe start
    
  • 也可在CI工作流中手动切换SDK版本:
    steps:
      - name: 切换至.NET 8 SDK
        run: |
          dotnet use 8.0.407 --global
          dotnet --version
    

3. 验证Runner的执行权限

若Runner以低权限用户运行,可能无法访问.NET 8的安装目录:

  • 打开服务管理器,查看Gitea Runner服务的登录身份,确保该用户拥有C:\Program Files\dotnet\sdk\8.0.407目录的读取权限。
  • 可临时将登录用户改为本地管理员,测试是否能识别到.NET 8 SDK。

4. 直接调用.NET 8的MSBuild

在CI工作流中跳过SDK版本检测,直接使用.NET 8对应的MSBuild构建项目:

steps:
  - name: 构建.NET 8项目
    run: |
      "C:\Program Files\dotnet\sdk\8.0.407\MSBuild.dll" YourProject.sln /p:Configuration=Release

5. 清理.NET SDK缓存

缓存异常可能导致版本识别错误,执行以下命令清理缓存后重试:

dotnet nuget locals all --clear

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:00:53