使用VS2017自带MSBuild 15构建.NET 4.5.1项目遇MSB3644错误求助
解决VS2017 MSBuild构建.NET Framework 4.5.1项目时的MSB3644错误
这个问题我之前帮团队排查过好几次,本质是VS2017自带的MSBuild 15找不到.NET Framework 4.5.1的引用程序集,核心原因要么是代理节点上缺了必要的开发组件,要么是MSBuild的运行环境没配置到位。给你几个靠谱的解决方案:
安装.NET Framework 4.5.1开发包
VS2017默认不会自动安装所有旧版本的.NET Framework目标包,尤其是4.5.1这种相对较早的版本。你需要在代理节点上下载并安装Microsoft .NET Framework 4.5.1 Developer Pack——这个包包含了MSBuild构建4.5.1项目所需的所有引用程序集。安装完成后,重新运行Jenkins构建任务,大概率能解决问题。通过VS开发者命令提示符运行MSBuild
直接调用独立的MSBuild.exe可能会因为环境变量缺失,导致找不到框架引用。更稳妥的方式是先启动VS2017的开发者命令提示符,它会自动配置所有必要的环境变量,包括框架引用路径。在Jenkins的构建步骤里可以写这样的批处理脚本:call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" msbuild YourProjectName.sln /p:Configuration=Release /p:Platform="Any CPU"替换
YourProjectName.sln为你的实际项目解决方案文件名,根据需要调整配置和平台参数。检查项目文件的目标框架配置
虽然你说项目是标准结构,但还是建议确认一下.csproj文件里是否明确指定了目标框架。打开项目文件,确保存在以下节点:<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>如果缺失或者版本号写错,也会导致MSBuild找不到对应的引用。
内容的提问来源于stack exchange,提问作者Neel
相关产品推荐
相关产品推荐

