You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Jenkins使用MSBuild构建报错及获取最新MSBuild版本求助

解决Jenkins中MSBuild构建.NET Core项目的MSB4236错误及MSBuild版本升级指南

从你提供的构建日志来看,核心问题是MSBuild版本过低导致无法识别.NET Core SDK:

版本3.0.100的.NET Core SDK要求MSBuild版本至少为16.3.0。当前可用的MSBuild版本为15.9.21.664。

MSB4236: 未找到指定的SDK“Microsoft.NET.Sdk”这个错误是连锁反应——旧版MSBuild不知道如何处理较新的.NET Core SDK项目格式。


解决方案

1. 升级MSBuild到兼容版本

.NET Core 3.0+需要MSBuild 16.3或更高版本(对应Visual Studio 2019及以上),你可以通过以下两种方式安装:

  • 安装完整Visual Studio:在Jenkins所在的Windows服务器上安装Visual Studio 2019或2022,安装时务必勾选.NET桌面开发.NET Core跨平台开发这两个workload,它们会自动包含所需的MSBuild和.NET SDK支持文件。
  • 安装轻量级Build Tools:如果不想装完整VS,推荐下载Visual Studio Build Tools(2019或2022版本),同样勾选上述.NET相关workload,它只包含构建所需的核心工具,更适合服务器环境。

2. 更新Jenkins的MSBuild配置

安装完成后,需要让Jenkins指向新的MSBuild路径:

  • 进入Jenkins后台,点击Manage Jenkins -> Global Tool Configuration
  • 找到MSBuild区域,点击新增MSBuild
  • 自定义一个名称(比如MSBuild 17.x for VS2022),然后填写MSBuild的安装路径:
    • VS2019 Build Tools: C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe
    • VS2022 Build Tools: C:\Program Files\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe
  • 保存配置后,回到你的构建任务,选择这个新配置的MSBuild版本重新执行构建。

3. 临时方案:降低项目SDK版本(不推荐长期使用)

如果暂时无法升级MSBuild,可以修改项目适配旧版环境,但注意.NET Core 2.x已停止支持:

  • 在项目根目录创建或编辑global.json文件,指定兼容MSBuild 15.9的SDK版本:
{
  "sdk": {
    "version": "2.2.207"
  }
}
  • 同时修改所有.csproj文件中的TargetFramework<TargetFramework>netcoreapp2.2</TargetFramework>

如何获取最新版MSBuild

最新的MSBuild总是随Visual Studio或Visual Studio Build Tools发布:

  • 直接下载最新版Visual Studio,安装时选择任意包含.NET开发的workload都会自带MSBuild
  • 或者下载Visual Studio Build Tools,它是专为服务器构建场景设计的轻量级包,包含最新的MSBuild和构建依赖
  • 注意:虽然.NET Core SDK自带一个MSBuild,但Jenkins的MSBuild插件通常更适配系统级安装的MSBuild(来自VS/Build Tools),能更好地兼容各类项目。

内容的提问来源于stack exchange,提问作者Aditya Singh

火山引擎 最新活动