如何使用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
相关产品推荐
相关产品推荐

