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

在Visual Studio Team Services中构建MonoGame项目遇问题

解决Visual Studio Team Services中MonoGame项目构建的MSB4226错误

这个错误本质上是构建代理服务器上缺少MonoGame的MSBuild目标文件导致的——你本地开发环境可能已经安装了MonoGame SDK,但VSTS(现Azure DevOps)的默认构建代理并没有预装这些组件。下面是几个可行的解决方案:

方案1:改用NuGet包替代本地SDK依赖

这是最推荐的方式,能彻底避免构建环境依赖问题:

  • 在本地Visual Studio中右键你的ESA项目,选择「管理NuGet程序包」
  • 搜索并安装MonoGame.Framework.Content.Pipeline包(注意版本要和项目中引用的v3.0对应)
  • 提交更新后的项目文件到代码仓库,重新触发VSTS构建

安装NuGet包后,项目会自动引用包目录中的MonoGame.Content.Builder.targets文件,不再依赖本地SDK的固定安装路径。

方案2:自定义构建代理并安装MonoGame SDK

如果你的项目必须依赖本地SDK:

  • 搭建一台自定义的VSTS构建代理服务器
  • 在代理机器上安装Visual Studio 2017 Enterprise(和错误提示中的路径版本完全一致)
  • 安装对应版本的MonoGame SDK(v3.0),确保C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\MonoGame\v3.0\路径下存在MonoGame.Content.Builder.targets文件
  • 在VSTS构建任务中选择使用这个自定义代理执行构建

方案3:修正项目文件中的路径引用

打开ESA.csproj文件,定位到第138行的导入语句,把硬编码的本地路径改为MSBuild变量引用,同时添加存在性检查:

<Import Project="$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets" Condition="Exists('$(MSBuildExtensionsPath)\MonoGame\v3.0\MonoGame.Content.Builder.targets')" />

这样构建时会自动在适配环境的路径下查找目标文件,减少固定路径带来的适配问题。

方案4:确认构建代理的VS版本匹配

检查VSTS构建任务中指定的Visual Studio版本是否为2017 Enterprise,如果代理上安装的是其他版本(比如2019),需要要么修改项目中的导入路径适配代理环境,要么调整构建任务的VS版本设置。

内容的提问来源于stack exchange,提问作者Zdeněk Kundrát

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:32:47