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

.NET 4.7.2 ASMX WebService推送至GitHub时出现MSB4019及MSB3644错误的解决咨询

.NET 4.7.2 ASMX WebService推送至GitHub时出现MSB4019及MSB3644错误的解决咨询

看起来你遇到的是GitHub CI环境和本地Windows VS环境不匹配导致的问题,毕竟ASMX这类传统.NET Framework Web项目对MSBuild环境的依赖比较特殊,我来给你梳理几个可行的解决办法:

  • 切换CI环境到Windows镜像
    你报错里提到的Microsoft.WebApplication.targets是Windows平台下Visual Studio专属的MSBuild目标文件,Linux环境的.NET SDK是不带这个的。所以如果用GitHub Actions的话,一定要把工作流的运行环境设置为Windows,比如在你的GitHub Actions配置文件(.github/workflows/xxx.yml)里加上:

    jobs:
      build:
        runs-on: windows-latest
    

    Windows镜像默认包含了Visual Studio相关的MSBuild组件,$(MSBuildExtensionsPath32)指向的路径下会有对应的targets文件,VS自动添加的那行Import就能正常生效了。

  • 确保CI环境安装了.NET Framework 4.7.2开发包
    第二个错误提示缺少.NET 4.7.2的引用程序集,虽然Windows镜像通常预装了常用的.NET Framework开发包,但如果没装的话,可以在CI步骤里手动安装。比如用Chocolatey包管理器添加安装步骤:

    choco install dotnetfx-4.7.2-devpack -y
    

    或者也可以通过Visual Studio Installer安装“ASP.NET和Web开发”工作负载,这个工作负载包含了Web项目所需的所有目标文件和依赖。

  • 保留VS自动添加的Import行
    你之前尝试删除那行Import导致了新的错误,这是因为ASMX Web项目需要依赖这个targets文件来处理Web应用的编译逻辑,强行移除会破坏项目的MSBuild配置。只要CI环境是Windows且有对应的VS组件,这个Import路径是完全有效的,不用手动修改。

  • 本地提前模拟CI编译
    为了避免推送到GitHub才发现问题,你可以在本地用MSBuild命令行来模拟CI的编译过程:打开VS2022的开发者命令提示符,运行:

    msbuild YourWebServiceProject.csproj /t:Build /p:Configuration=Release
    

    如果本地能正常编译,说明项目本身没问题,问题就集中在CI环境的配置上。

备注:内容来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:58:14