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

如何使用Nuke.Build在GitHub Actions中安装.NET 8预览版SDK?

用Nuke.Build配置GitHub Actions构建Blazor(.NET 8预览版)

1. GitHub Actions里安装.NET 8预览SDK

在你的GitHub Actions工作流文件(比如.github/workflows/build.yml)中,使用actions/setup-dotnet动作即可完成预览版SDK安装,核心是加上include-prerelease参数:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取代码
        uses: actions/checkout@v4

      - name: 安装.NET 8预览版SDK
        uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '8.0.x'
          include-prerelease: true

8.0.x会匹配8.0系列的最新版本,加上include-prerelease就会自动拉取对应预览版。

2. Nuke.Build适配配置

Nuke会自动识别环境中已安装的.NET SDK,你也可以在Build.cs里做针对性配置:

方式一:强制指定具体预览版本

如果需要固定使用某个特定预览版本,在Build任务中设置SdkVersion:

Target Build => _ => _
    .DependsOn(Restore)
    .Executes(() =>
    {
        DotNetBuild(s => s
            .SetProject(Solution)
            .SetConfiguration(Configuration)
            .SetFramework("net8.0")
            .SetSdkVersion("8.0.100-preview.7.23376.3")); // 替换为你需要的具体预览版本号
    });

方式二:自动使用环境中的SDK

如果已经在GitHub Actions中完成预览版安装,Nuke会自动使用该SDK,只要你的项目目标框架是net8.0,Build.cs无需额外指定版本:

Target Build => _ => _
    .DependsOn(Restore)
    .Executes(() =>
    {
        DotNetBuild(s => s
            .SetProject(Solution)
            .SetConfiguration(Configuration)
            .SetFramework("net8.0"));
    });

测试任务配置逻辑相同,直接调用DotNetTest即可:

Target Test => _ => _
    .DependsOn(Build)
    .Executes(() =>
    {
        DotNetTest(s => s
            .SetProject(Solution)
            .SetConfiguration(Configuration)
            .SetFramework("net8.0"));
    });

额外注意事项

  • 检查Blazor项目的.csproj文件,确保目标框架设置为<TargetFramework>net8.0</TargetFramework>
  • 若遇到版本匹配问题,可在GitHub Actions中添加步骤打印已安装SDK,方便排查:
- name: 列出已安装的.NET SDK
  run: dotnet --list-sdks

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:34:57