MSBuild 缩短了 vcxproj 文件中的配置管理
MSBuild Shorten Configuration Managment In vcxproj-Files
- 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'
这样的快捷方式吗?
您可以删除 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)设置不同的输出路径等等
- 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'
这样的快捷方式吗?
您可以删除 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)设置不同的输出路径等等