CreateItem und CreateProperty sind in MSBuild 3.5 veraltet (obwohl natürlich immer weiter funktioniert). Es war ziemlich offensichtlich, dass wir die gleiche vertraute Syntax für ItemGroup und PropertyGroup brauchten, um innerhalb von Zielen zu arbeiten.
Aber ItemGroup in einem Ziel hat einige besondere zusätzliche Kräfte. Es kann Elemente ändern: Beispielsweise werden alle Elemente in der Ressourcenliste, die eine Metadaten mit dem Namen "Primär" mit dem Wert "Wahr" aufweisen, als "Wahr" hinzugefügt. nur wenn noch nicht vorhanden Metadaten kopieren:
Eine weitere magische Kraft: Sie können jetzt Elemente aus einer Liste entfernen.In diesem Beispiel werden alle Elemente aus der Ressourcenliste entfernen, die Metadatentyp mit Wert Bitmap haben:
<ItemGroup>
<Resources Condition=" '%(Type)'=='Bitmap' " Remove="@(Resources)"/>
</ItemGroup>
nur Diese magischen Kräfte derzeit innen arbeiten, nicht außerhalb.
Für vollständige Details dieses Materials, empfehle ich Sayed Hashimi's Buch auf MSBuild. Es ist leicht auf Amazon gefunden.
Dan - Msbuild-Team.
Vielen Dank, das ist genau das, was ich wissen wollte! Ich muss das Buch auschecken. – Jake
Ja, das Buch ist großartig, ich liebe es :) :) :) Danke für die rec. –
Ich fand jedoch einen großen Unterschied: CreateItem erweitert Platzhalter, die ihm in Include übergeben werden, über eine Transformationsoperation wie, während eine ItemGroup-Deklaration sie nicht erweitert . –