2009-08-02 4 views
2

Wenn ich eine Liste von Elementen in einer MSBuild-Datei erstelle, wird die Reihenfolge der Elemente beibehalten, wenn sie an eine Aufgabe übergeben werden?Behalten Artikel in der MSBuild-Datei ihre Reihenfolge bei, wenn sie an eine Aufgabe übergeben werden?

z. Eine Liste von Datenbankskriptdateien wird in einer ItemGroup angegeben. Ich füttere diese ItemGroup dann einer benutzerdefinierten Aufgabe? Wird die Bestellung garantiert oder könnte sich die Bestellung ändern?

Antwort

2

Ja, MSBuild verwaltet die Reihenfolge einer Liste von Elementen , die den gleichen Elementtyp innerhalb einer ItemGroup haben. (Zum Beispiel kann die Reihenfolge aller „< Compile Include =“ ... „>“ in einem .fsproj Angelegenheit, wie es die Reihenfolge der Dateien in der # Projektdatei F angibt.)

+0

Gibt es etwas in die MSDN-Dokumentation, die das sagt? – PenFold

+0

Ich weiß nicht, aber ich arbeite bei MS in Visual Studio, und ich sprach mit den Entwicklern von MSBuild, um diese Informationen zu erhalten (wie ich diese Garantie verstehen musste, um die F # -Projektsystemimplementierung zu erstellen). – Brian

+0

Ok, das ist großartig. – PenFold

1

Ich glaube, die Reihenfolge wird beibehalten. Je nachdem, wie Sie die ItemGroup erstellen, ist die Reihenfolge jedoch möglicherweise nicht garantiert.

Um vollständiger zu sein, sollten Sie wahrscheinlich die Skripts mit der Depends-Gruppe erstellen, um sie in einer bestimmten Reihenfolge zu erhalten, d. H. Referenzdateneinfügung hängt von den gespeicherten Proc-Skripten ab, die von den Schemaskripten abhängen. Sie können jede als ItemGroup definieren und somit ist die Reihenfolge korrekt.

Aber Sie können sicher davon ausgehen, dass die Reihenfolge beibehalten wird, wenn Sie sie jedes Mal auf die gleiche Weise erstellen.

Verwandte Themen