6

我刚刚了解到,Visual Studio 2010 和 MSBuild 在成功执行哪些 vcxproj MSBuild 文件时非常宽容——它们会忽略子任务和单个文件的缺失配置,但仍能成功执行构建任务。然而,这给我带来了问题,因为它导致跨多个配置的构建不一致,而且由于项目文件中的内部不一致,我不一定能在 Visual Studio 的属性视图中编辑它们。

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

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

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

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

4

1 回答 1

1

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

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

恐怕没有什么可以为您执行此操作。

于 2012-09-10T12:50:32.637 回答