首页 > 原创文章 > 技术应用 > 查看文章

如何在GitHub actions windows runner中配置运行.Net 4.5

所属分类:技术应用 来源: 丁老师原创 更新时间:2025-07-04 09:26 浏览: 544 IP属地: 深圳
点击阅读全文

最近有同学咨询求助,正在使用基于.Net 4.5.X的.Net Framework框架项目,实现CI/CD流程。但是Github Actions在dotnet发布索引中,找不到4.5版本,无法正常运行,这该怎么办呢?

这位同学先后试了很多方法,比如把从windows runner从windows latest切换到windows 2019,期望用高版本的.Net Framework(比如.Net 4.8)的向下兼容性来实现,然后又尝试使用dotnet build -f net45来实现,但遇到了NuGet包的引用错误。一直没有找到解决方法,不得已下,来请求丁老师的帮助。

丁老师在收到帮助请求后,仔细研究了一下GitHub actions windows runner,发现从2025年7月起,GitHub Actions停止了对windows 2019 runner的支持,目前可选的runner只有windows last,windows 2022,windows 2025,如图:

image.png

因此,建议最好是提升windows版本,使用更高的.Net Framework版本来实现向下兼容。

其他方法:
1.从NuGet.org中下载.Net Framework 4.5 SDK;
2.删除C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5;
3.对新下载的.Net Framework 4.5 SDK包,解压,然后移动到C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework;

GitHub action例子:

name: test

on:
  workflow_dispatch:
  push:
    branches: ['main']

jobs:
  build:
    runs-on: windows-2025

    env:
      projName: net45action
      buildCfg: Release
      net45SdkUrl: 'https://www.nuget.org/api/v2/package/Microsoft.NETFramework.ReferenceAssemblies.net45/1.0.3'
      sdkSystemPath: 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework'

    steps:
      - name: Install .net framework 4.5 SDK
        shell: pwsh
        run: |
          echo "download ${env:net45SdkUrl}"
          Invoke-WebRequest -Uri "${env:net45SdkUrl}" -OutFile "${env:temp}\net45sdk.zip"
          echo "unzip net45sdk.zip"
          Expand-Archive -Force -LiteralPath "${env:temp}\net45sdk.zip" -DestinationPath "${env:temp}\net45sdk"
          echo "delete ${env:sdkSystemPath}\v4.5"
          [IO.Directory]::Delete("${env:sdkSystemPath}\v4.5", $True)
          echo "move SDK to ${env:sdkSystemPath}\v4.5"
          Move-Item -Force -LiteralPath "${env:temp}\net45sdk\build\.NETFramework\v4.5" -Destination "${env:sdkSystemPath}"

      - name: Checkout
        uses: actions/checkout@v4

      - name: Add msbuild to PATH
        uses: microsoft/setup-msbuild@v2

      - name: Setup VSTest Path
        uses: darenm/Setup-VSTest@v1.2

      - name: Restore packages
        run: nuget restore ${env:projName}.sln

      - name: Build
        run: msbuild ${env:projName}.sln -p:Configuration=${env:buildCfg}

      - name: Run unit tests
        run: vstest.console.exe "${env:projName}.test\bin\${env:buildCfg}\${env:projName}.test.dll"


相关文章

K8s,Hadoop,Spark,Zooke...

有同学问到,在java程序员招聘时,常被问到什么k8s,hadoop,zookeeper,elisticsearch,kafka等等名词,什么乱七八糟的,根本不知道是些什么东西,这些到底是什么啊?今天丁老师来给你解答。其实这些都是jav...

公众号域名提示"无法确认该网页的安全性,请谨...

经常有同学提问,公众号绑定的域名链接,访问时提示“无法确认该网页的安全性,请谨慎访问”,这是怎么回事?如何解决呢?这是一个被问及比较多的问题,也是一个比较普遍的情况,今天丁老师就这个问题的原因,以及解决方法,来进行分析和解答。问:为什么...

宝塔 error while loading...

在宝塔安装PHP时,提示:启动失败:/www/server/php/80/sbin/php-fpm: error while loading shared libraries: libicuio.so.73: cannot open s...

二维码可以存储多少个信息?

二维码码有三个参数:数据类型、大小(“像素”数)和纠错级别。能存储多少信息也取决于这些参数。例如,纠错级别越低,可存储的信息越多,但代码越难被读者识别。最大尺寸和最小纠错值如下:最大字符数7089个字符(纯数字)字母数字4296个字符(...

推荐文章

小红书个人账号/认证账号/企业号区别一览

普通账号个人认证号企业认证号蓝色认证标识薯条推广聚光平台效果广告普通应商业合作以KOL/KOC身份和品牌合作以品牌方身份发起起合作开设店铺个人店铺或个体户(不支持港澳台公司申请)旗舰店店或专卖店(支持港澳台公司申请)主动私信每天10位陌生用...

windows11右键恢复经典模式的方法[亲...

windows11更新后,不管是桌面的右键,还是文件上点右键,都非常地别扭,而且也非常的卡顿。在网上找了一堆方法,都不管用,经过不懈努力,终于找到了真正能恢复经典版右键的方法。废话不多说,具体方法如下:1.以管理员方式运行CMD打开后,在C...

fontawesome所有图标class类名...

fontawesome所有图标class类名单,适用于4.7.0版本。总计有593个图标class类(包含别名):fa-500pxfa-address-bookfa-address-book-ofa-address-cardfa-addre...

AI工具大全:好用的AI工具推荐(持续更新中...

这几年AI技术的发展已经达到新的高度,从提高个人生产力到企业操作效率的各个方面,AI都扮演着不可或缺的角色。无论是进行语言交流、内容创作、或是任务管理,都有相应的AI工具可以帮助我们更加轻松地完成工作。以下是丁老师觉得不错的AI工具推荐,希...