0
  • 视窗版本: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'

4

2 回答 2

1

这样做的标准方法是使用“属性表”;更具体:一个属性表,其中包含所有平台/配置组合导入的通用选项。选择这种方法的一些原因:

  • 它完全解决了您的“我将对所有组合具有相同的配置,因此我不想写 4 次使我的项目文件长 3 倍且可读性降低”的要求,以及更多:它将常用选项保留在一个文件中,也可以由其他项目重新使用(如果您有多个项目并希望它们具有相同的选项,这确实是第一卖点)
  • 它具有用于编辑的用户界面支持(尽管如果您想手动编辑 vcxproj 来添加它也没问题)
  • 它保持标准项目结构完整,因此如果您需要这些,仍然允许按配置和按平台进行修改
  • 属性表只是 msbuild 文件,因此可以导入其他文件,以便您可以使用它们创建层次结构,执行诸如拥有一个基于应用程序类型 (exe/dll) 设置不同输出路径的主文件等操作
于 2017-07-23T08:44:31.173 回答
1

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

于 2017-07-23T06:55:09.887 回答