TFS 2018 MSBuild多项目构建错误:XAML构建定义迁移问题
解决TFS2018新构建中多项目路径逗号分隔报错的问题
这个问题我之前帮团队从XAML构建迁移到新系统时也碰到过,核心原因是旧XAML构建的「要构建的项目」字段是模板自定义的逗号分隔逻辑,而TFS2018的新构建任务(Build Solution/MSBuild)遵循MSBuild原生语法,不再支持逗号分隔多个项目路径。下面给你几个实用的解决办法:
方法一:添加多个Build Solution任务(最直观)
如果你习惯用Build Solution任务,最简单的方式就是拆分任务:
- 在构建定义里添加两个独立的Build Solution任务
- 第一个任务的「解决方案」字段填:
$/WMS/Dev/sekoWMS/DPURevisionUpdater/DPURevisionUpdater.csproj - 第二个任务的「解决方案」字段填:
$/WMS/Dev/sekoWMS/DesktopApp/SEKOWMS/SEKOWMS.csproj
这种方式不需要额外配置,每个任务独立构建对应项目,适合项目数量不多的场景。
方法二:使用MSBuild任务并支持多项目(更高效)
如果想一次性构建多个项目,建议切换到MSBuild任务(比Build Solution更灵活),MSBuild原生支持分号分隔或换行分隔多个项目路径:
- 在构建定义中添加MSBuild任务
- 在「项目」字段中填入以下内容(二选一即可):
- 换行分隔(可读性更好):
$/WMS/Dev/sekoWMS/DPURevisionUpdater/DPURevisionUpdater.csproj $/WMS/Dev/sekoWMS/DesktopApp/SEKOWMS/SEKOWMS.csproj - 分号分隔(紧凑写法):
$/WMS/Dev/sekoWMS/DPURevisionUpdater/DPURevisionUpdater.csproj;$/WMS/Dev/sekoWMS/DesktopApp/SEKOWMS/SEKOWMS.csproj
- 换行分隔(可读性更好):
MSBuild会自动识别这种格式,并且会处理项目间的依赖顺序,一次性完成构建。
方法三:创建自定义解决方案文件(长期维护更方便)
如果这几个项目是经常一起构建的组合,建议在TFS源代码管理中创建一个空的解决方案文件(.sln),把这两个项目添加进去,然后在Build Solution任务中直接指定这个解决方案的路径。这样后续要添加或移除项目时,只需要修改解决方案即可,不需要调整构建定义。
额外注意点
- 确保构建定义的「源代码管理路径映射」已经包含了这些项目所在的目录,否则构建任务会找不到项目文件
- 如果项目之间有依赖关系,MSBuild会自动按正确顺序构建,不需要手动调整任务顺序(除非有特殊的自定义依赖逻辑)
内容的提问来源于stack exchange,提问作者M Mlachak
相关产品推荐
相关产品推荐

