MSBuild缩短了vcxproj文件中的配置管理

时间:2017-07-22 17:19:25

标签: msbuild vcxproj

  • Windows版本:Microsoft Windows [Version 10.0.14393]
  • MSBuild版本:Microsoft (R)-Buildmodul, Version 15.1.1012.6693
  • 该项目以C编写。

在这个项目的*.vcxproj个文件中,有很多代码都是这样的

<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
  [do some stuff]
</ImportGroup>

适用于所有配置,'Debug|Win32''Release|Win32''Debug|x64''Release|x64'。但是我对所有组合都有相同的配置,因此我不想写它4次使我的项目文件长3倍,可读性低。

是否有像Condition="'$(Configuration)|$(Platform)'=='Any Configuration|Any Architecture'这样的快捷方式?

2 个答案:

答案 0 :(得分:1)

您可以删除Condition属性,并为每个配置应用ImportGroup。

答案 1 :(得分:1)

执行此操作的标准方法是使用&#39; property sheets&#39 ;;更具体:一个属性表,其中包含所有平台/配置组合导入的常用选项。选择这种方法的一些原因:

  • 它完全解决了你的问题;我将对所有组合使用相同的配置,因此我不想写它4次使我的项目文件长3倍,可读性差。要求等等:它将公共选项保存在一个文件中,也可以由其他项目来恢复(如果你有多个项目并且想要相同的选项,这实际上是第一个卖点)。
  • 它具有编辑用户界面支持(如果你想手动编辑vcxproj来添加它就没问题)
  • 它保持标准项目结构的完整性,因此如果您需要,仍允许按配置和按平台进行修改
  • 属性表只是与其他任何文件一样的msbuild文件,因此可以导入其他文件以便您可以使用它们创建层次结构,执行诸如基于应用程序类型(exe / dll)的一个主文件设置不同的输出路径等等上