2012-09-09 35 views
5

我刚刚了解到Visual Studio 2010和MSBuild在成功执行哪些vcxproj MSBuild文件时非常宽松 - 他们会忽略子任务和单个文件的缺失配置,并且仍然成功执行构建任务。然而,这对我造成了问题,因为它导致跨多个配置的构建不一致,另外由于项目文件中的内部不一致,我不一定能够在Visual Studio的属性视图中编辑它们。MSBuild有类似皮棉的工具吗?

到目前为止,我已经设法通过手工编辑vcxproj文件来消除最有问题的不一致性,但考虑到此特定解决方案包含80多个项目文件,这并不是一个可接受的策略。

是否有一种工具可以检查MSBuild文件的内部一致性,并突出显示缺少的配置,“您的项目文件说它提供配置X,Y和Z,但文件X的自定义生成任务仅支持配置X和Z“?

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

然而,我真的想看到的是一个工具,至少可以自动突出显示这些问题,以减少追踪它们所花费的时间。

回答

1

配置通常是VS概念。它们不是内置于MSBuild,而是使用属性组的条件属性实现的。最有可能的项目文件是有效的MSBuild项目,但他们中的一些不使用默认参数建 - 我建议不要用手对它们进行编辑,但无论是

有,将执行这个给你,恐怕没有一个小应用程序。

+0

Microsoft.Build.Construction API看起来很有趣,谢谢!我已经编辑了这个问题,以反映我目前遇到的问题不幸有点超出了我通常使用的查找和替换工具,尽管我可能会将一个ruby脚本放在一起做一些工作。 –