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

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

所属分类:技术应用 来源: 丁老师原创 更新时间:2025-07-04 09:26 浏览: 1814 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"


标签:

相关文章

宝塔面板卸载方法

1.下载宝塔卸载命令文件wget http://download.bt.cn/install/bt-uninstall.sh2.执行卸载命令sh bt-uninstall.sh注意事项:卸载前备份好数据库和网站,一旦卸载所有数据都将不再...

阿里云服务器如何屏蔽封锁某个IP段?

经常做网站或者公网应用的朋友都知道,网站每天有大量的蜘蛛、弱密码探针、常用目录探针、暴漏弱点扫描等垃圾IP,使用爬虫大量访问,不仅对服务器的安全造成严重影响,而且还非法侵占了网站的流量,非法占用了网络带宽,以不安全、不专业的危险方式影响...

日立Hitachi P1H6Q中央空调锁定面...

办公室的中央空调,是日立Hitachi的P1H6Q中央空调,需要用面板控制。这么炎热的夏天,因为空间大,空调即使开到22度也不是很凉,可有些同事,因为工位坐在出风口,她自己感觉很冷!所以每当我们这边把温度调到18度 20度的时候,她就去...

Cursor返回the model defa...

最近丁老师团队在开发软件项目时,使用的是Cursor IDE来进行AI辅助开发,前几天一直都用的好好的,今天却突然提示“the model default does not work with your current plan or ...

推荐文章

关闭edge浏览器自带image viewe...

挺不错的浏览器,强加入了edge image viewer图片浏览器,感觉不是那么好,对于开发者来说,更想要原生的东西。包括微信网页版里的表情图片,用edge image viewer打开的话,无法保存为gif格式,即使保存了,也只是第一帧...

Bagisto-基于Laravel框架的免费...

软件介绍Basgito是基于Laravel框架的免费电子商务平台,可以快速搭建自己企业专属的电子商务交易平台,适用于中小型外贸企业。该电商平台拥有无头laravel商务(headless laravel commerce)的强大功能,可以快...

制作抖音小程序所需要的资料以及费用是多少?

开发抖音小程序所需资料及费用概览随着短视频平台抖音(TikTok)在全球范围内的迅速崛起,越来越多的企业和个人开始意识到在抖音平台上开发小程序的重要性。抖音小程序不仅可以增强品牌曝光率,还能为用户提供更加便捷的服务体验。那么问题来了,开发一...

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

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

当前在线
免费咨询