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

如何在GitHub Actions中安装.NET Framework 4.7.2目标包/SDK?

在GitHub Actions中编译.NET Framework 4.7.2项目的正确配置

你之前的配置问题源于混淆了.NET Framework与.NET Core/.NET SDK的差异:.NET Framework 4.7.2是Windows专属的旧版框架,setup-dotnet Action仅负责安装.NET Core/.NET SDK,无法识别.NET Framework版本;同时Ubuntu环境默认不包含.NET Framework的目标引用程序集,导致编译失败。以下是两种可行的解决方案:

方案一:使用Windows Runner(推荐,最稳定)

Windows环境的GitHub Runner默认预装了包括4.7.2在内的大部分.NET Framework开发包,无需额外手动安装,配置更简单。

修改后的YAML配置:

jobs:
  build:
    name: Build .NET Framework 4.7.2 Project
    runs-on: windows-latest
    env:
      DOTNET_CLI_TELEMETRY_OPTOUT: 1
      DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
      DOTNET_NOLOGO: true

    steps:
    - uses: actions/checkout@v4
      
    - name: Setup .NET SDK(可选,若项目依赖.NET Core/.NET)
      uses: actions/setup-dotnet@v4
      with:
        dotnet-version: 8.0.204

    - name: Restore NuGet packages
      run: dotnet restore

    - name: Build project
      run: dotnet build --configuration Release --no-restore

    - name: Run tests(若有测试项目)
      run: dotnet test --no-restore --configuration Release

说明

  • 将runs-on改为windows-latest,Windows Runner自带.NET Framework 4.7.2的目标引用程序集,满足编译需求。
  • 保留.NET 8 SDK配置是为了兼容可能存在的跨框架代码或工具依赖,无相关需求可直接移除该步骤。
  • dotnet restore和dotnet build命令在Windows环境下可正常处理.NET Framework项目。

方案二:使用Ubuntu Runner(通过Mono编译)

若必须使用Linux环境,可借助Mono提供的.NET Framework兼容编译环境:

修改后的YAML配置:

jobs:
  build:
    name: Build .NET Framework 4.7.2 Project on Ubuntu
    runs-on: ubuntu-latest
    env:
      DOTNET_CLI_TELEMETRY_OPTOUT: 1
      DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
      DOTNET_NOLOGO: true

    steps:
    - uses: actions/checkout@v4
      
    - name: Install Mono & MSBuild
      run: sudo apt-get update && sudo apt-get install -y mono-complete msbuild nuget

    - name: Restore NuGet packages
      run: nuget restore

    - name: Build project
      run: msbuild /p:Configuration=Release /p:TargetFrameworkVersion=v4.7.2

    - name: Run tests(根据测试框架调整)
      run: nunit-console YourTestProject/bin/Release/YourTestProject.dll

说明

  • 安装mono-complete提供.NET Framework兼容运行时,msbuild负责编译,nuget用于恢复依赖。
  • 使用msbuild直接指定目标框架版本进行编译。
  • 测试命令需根据项目使用的测试框架调整(如NUnit用nunit-console,xUnit需对应工具)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 14:20:06