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

MSBuild Shorten Configuration Managment In vcxproj-Files

在这个项目的*.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'这样的快捷方式吗?

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

执行此操作的标准方法是使用“property sheets”;更具体:一个 属性 sheet 具有由所有 platform/configuration 组合导入的通用选项。选择这种方法的一些原因:

  • 它完全满足了您的 "I will have the same configuration for all combinations, therefore I do not want to write it 4 times making my project file 3 times longer and less readable" 要求,并且更多:它将常用选项保存在一个文件中,其他项目也可以重新使用(如果您有多个项目,这确实是第一卖点)项目并希望为他们提供相同的选项)
  • 它具有用于编辑的用户界面支持(尽管如果您想手动编辑 vcxproj 来添加它也没问题)
  • 它保持标准项目结构不变,因此仍然允许在需要时对每个配置和每个平台进行修改
  • 属性 sheets 和其他任何文件一样只是 msbuild 文件,因此可以导入其他文件,以便您可以使用它们创建层次结构,做一些事情,比如拥有一个基于应用程序类型的主文件(exe/dll)设置不同的输出路径等等