如果我在MSBuild文件中创建一个项目列表,那么传递给任务时项目的顺序是什么?
E.g。在ItemGroup中指定数据库脚本文件列表。然后我将此ItemGroup提供给自定义任务?订单会得到保证还是订单会改变?
答案 0 :(得分:2)
是的,MSBuild维护ItemGroup中具有相同项目类型的项目列表的顺序。 (例如,.fsproj中所有“< Compile Include =”...“>”的顺序很重要,因为它指定了F#项目文件中文件的顺序。)
答案 1 :(得分:1)
我相信订单得以维持。但是,根据您创建ItemGroup的方式,可能无法保证订单。
为了更完整,您应该使用Depends组构建脚本以尝试按某种顺序获取它们,即参考数据插入取决于存储的proc脚本,这取决于模式脚本。您可以将每个定义为ItemGroup,因此订单将是正确的。
但是如果你每次都以相同的方式构建它们,你可以安全地假设订单得以维持。