MSBuild有一个类似于lint的工具吗?

Tim*_*sch 5 msbuild visual-studio-2010 msbuild-4.0

我刚刚学习了Visual Studio 2010和MSBuild在它们将成功执行哪些vcxproj MSBuild文件时非常宽松的方法 - 它们将忽略子任务和单个文件的缺失配置,并且仍然成功执行构建任务.然而,这给我带来了问题,因为它导致跨多个配置的不一致构建,加上由于项目文件中的内部不一致,我不一定在Visual Studio的属性视图中编辑它们.

到目前为止,我已经设法通过手动编辑vcxproj文件来摆脱最有问题的不一致性,但鉴于此特定解决方案包含超过80个项目文件,这不是一个真正可接受的策略.

是否有一个工具可以检查MSBuild文件的内部一致性并突出显示缺少的配置,"你的项目文件说它提供配置X,Y和Z但文件X的自定义构建任务只支持配置X和Z"?

更新:我试图解决具体的问题,现在,而不是掉毛的vcxproj文件的更普遍的问题是,对于某些配置缺失条件句.不幸的是,添加和更新条件似乎需要比使用查找和替换工具安全完成的更多.以编程方式正确地执行它很可能需要DOM操作,并且鉴于我对构建文件的内部结构非常熟悉,到目前为止,使用能够进行基本结构XML验证的文本编辑器似乎是最快的方法.手头的任务.

然而,我真正希望看到的是一种工具,它至少可以自动突出显示这些问题,以减少跟踪它们所花费的时间.

sko*_*ima 2

一般来说,配置是一个 VS 概念。它们不是内置于 MSBuild 中,而是使用属性组上的条件属性来实现。您的项目文件很可能是有效的 MSBuild 项目,但其中一些项目不使用默认参数构建 - 我建议不要手动编辑它们,但是

  • 使用查找和替换工具来修复它们
  • 编写一个使用Microsoft.Build.Construction API 来检查和修复项目文件的小应用程序

恐怕没有什么可以为你做到这一点。