最近有同学咨询求助,正在使用基于.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,如图:

因此,建议最好是提升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.打开微信公众平台网址https://mp.weixin.qq.com/;2.用管理员微信扫码登录;3.进入小程序后台,在左侧底部的小程序名称中,选择账号设置,...
有同学在群里问了,在开发架构中,经常遇到nacos,txlcn,xxl-job,ares,canal这些东西?到底是些什么,都是做什么用的呢?今天丁老师就给你们解答。首先,这些都属于java程序中,开发分布式架构的一些常用中间件,具体的...
在开发微信小程序之前,一般都要先做原型图设计,顾名思义,就是把这个微信小程序前期的效果图做出来,发给客户进行确认,确认内容包含界面排名、功能和内容布局、大致样式等。做原型图是设计师和前端的工作,但是很多刚入行的新人以及没有做过原型图的同...
一、查看系统安装mysql的情况;rpm -qa | grep -i mysql二、关闭Mysql服务;service mysql stop三、批量删除mysql相关的包;rpm -qa | grep mysql | xargs yum...
上一期我们讲到了《微信小程序发布后多久可以能被搜索到?》,我们已经知道了微信小程序在上架后,多久能被搜索到的一个时间范围。本期我们讲一下,微信小程序被搜索,如何提升排名,是搜索结果靠前的方法。首先,微信小程序的搜索结果排名,并没有一个固定的...
windows11更新后,不管是桌面的右键,还是文件上点右键,都非常地别扭,而且也非常的卡顿。在网上找了一堆方法,都不管用,经过不懈努力,终于找到了真正能恢复经典版右键的方法。废话不多说,具体方法如下:1.以管理员方式运行CMD打开后,在C...
丁老师软件,推出图片在线加水印功能,支持图片和PDF文件加水印,可以添加文字水印、图片水印,文字水印支持调整文字大小、文字颜色、位置、透明度等,添加水印后可以自动生成文件,可以下载。在线添加图片水印地址https://www.dls6.co...
二维码码有三个参数:数据类型、大小(“像素”数)和纠错级别。能存储多少信息也取决于这些参数。例如,纠错级别越低,可存储的信息越多,但代码越难被读者识别。最大尺寸和最小纠错值如下:最大字符数7089个字符(纯数字)字母数字4296个字符(字母...