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

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

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


标签:

相关文章

Git同步时提示is not owned b...

最近更换了电脑,装好了git,在对项目同步时提示is not owned by current user的错误,如图:仔细研究了下,这是因为创建项目的电脑git和当前电脑的用户权限不同导致的。直接说解决方法吧:1.进入C盘,C:\Use...

Mysql查当天、本周、当月、本季度、当年等...

以下是mysql常用的日期时间查询语句,其中,时间字段名是默认以datetime格式的,如果是int时间戳格式的时间,则需要在时间字段名字段上,加上from_unixtime(时间字段名)。查询当天的数据:#时间字段为y-m-d格式,如...

Dify AI完全搭建方法(For Linu...

Dify 是一个 类似“智能制作工具”,是一个可以实现低代码的AI助手。让你可以不用写复杂代码,也能快速做出自己的AI集成或智能应用。并且自带知识库体系,可以上传知识文档,根据自己的行业和业务,训练自己的垂直大模型,制作出生产及的AI应...

网站中的CSS/LESS/SCSS都是什么,...

最近有做前端的小伙伴咨询丁老师,网站中使用的不是只有css吗?怎么现在还有Less和Scss,这些都是什么,和CSS有什么区别呢?今天丁老师介绍一下。CSSCSS就是传统的网站样式表,是Cascading Style Sheet的缩写,...

推荐文章

fontawesome所有图标class类名...

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

丁老师软件推出图片在线加水印功能

丁老师软件,推出图片在线加水印功能,支持图片和PDF文件加水印,可以添加文字水印、图片水印,文字水印支持调整文字大小、文字颜色、位置、透明度等,添加水印后可以自动生成文件,可以下载。在线添加图片水印地址https://www.dls6.co...

微信小程序搜索如何让排名靠前?

上一期我们讲到了《微信小程序发布后多久可以能被搜索到?》,我们已经知道了微信小程序在上架后,多久能被搜索到的一个时间范围。本期我们讲一下,微信小程序被搜索,如何提升排名,是搜索结果靠前的方法。首先,微信小程序的搜索结果排名,并没有一个固定的...

Linux使用lnmp套件安装后打卡默认站点...

最近要在某单位内网部署项目,使用了lnmp来配置环境,软件安装成功,可安装后不管是打开ip地址还是默认站点,都提示nginx 403 forbidden,这是怎么回事呢?首先,已经出现了nginx 403提示,说明nginx是安装正常的。其...

当前在线
免费咨询