为什么要有多个ItemGroup和ItemDefinitionGroups?

时间:2018-11-28 08:15:39

标签: c++ msbuild

我一直在努力从头开始创建我的msbuild * .vcxproj文件,以更好地了解msbuild的作用。在this之类的示例中,例如在MSDN上,为什么会有一个ClCompile任务的ItemGroup和一个ClInclude任务的单独ItemGroup。您可以将它们全部合并到一个ItemGroup中吗?在链接的示例中,我还看到了多个ItemDefinitionGroups。为什么要有多个?

1 个答案:

答案 0 :(得分:1)

这只是个人喜好。您可以将逻辑上属于一起的事物分组为项目/属性组。

分离的实际原因是,如果您需要应用Condition属性-您可以在一个组上放置一个条件,而不是对多个项目/属性/ *应用相同的条件。

对于通过工具生成的项目,某些工具可能会分别发出每个项目组,并且不实施其他逻辑来合并无条件组。这只是此类工具的实现细节。