我一直在努力从头开始创建我的msbuild * .vcxproj文件,以更好地了解msbuild的作用。在this之类的示例中,例如在MSDN上,为什么会有一个ClCompile
任务的ItemGroup和一个ClInclude
任务的单独ItemGroup。您可以将它们全部合并到一个ItemGroup中吗?在链接的示例中,我还看到了多个ItemDefinitionGroups。为什么要有多个?
答案 0 :(得分:1)
这只是个人喜好。您可以将逻辑上属于一起的事物分组为项目/属性组。
分离的实际原因是,如果您需要应用Condition
属性-您可以在一个组上放置一个条件,而不是对多个项目/属性/ *应用相同的条件。
对于通过工具生成的项目,某些工具可能会分别发出每个项目组,并且不实施其他逻辑来合并无条件组。这只是此类工具的实现细节。