我一直致力于从头开始创建 msbuild *.vcxproj 文件,以便更好地了解 msbuild 的作用。在这样的示例和 MSDN 上的示例中,为什么有一个ClCompile任务的 ItemGroup 和一个ClInclude任务的单独的 ItemGroup。您能否将它们全部集中到一个 ItemGroup 中?我还在链接的示例中看到多个 ItemDefinitionGroup。为什么有多个这样的?
这只是个人口味。您可以将逻辑上属于一起的事物分组到项目/属性组中。
分离的一个实际原因是,如果您需要应用属性Condition- 您可以在组上放置一个条件,而不是将相同的条件应用于多个项目/属性/*。
对于由工具生成的项目,某些工具可能会单独发出每个项目组,并且不会实现附加逻辑来合并无条件组。这只是此类工具的实现细节。