Ich habe folgende Aufgabe, die durch die Kombination von DestinationFiles und DestionationFolder nicht funktioniert, aber es greift das Konzept von dem, was ich tun möchte:MSBuild rekursive Kopie mit% (ConfigurationToBuild.PlatformToBuild)
<CreateItem Include="$(Destination)\**\*.Generated.*.*">
<Output TaskParameter="Include" ItemName="GeneratedFiles" />
</CreateItem>
<Copy Condition=" '%(ConfigurationToBuild.FlavorToBuild)'=='Debug-All' Or '%(ConfigurationToBuild.FlavorToBuild)'=='Release-WebService' "
SourceFiles="@(GeneratedFiles)"
DestinationFiles="@(GeneratedFiles->'%(RecursiveDir)%(Filename)%(Extension)')"
DestinationFolder="$(BinariesRoot)\%(ConfigurationToBuild.PlatformToBuild)\%(ConfigurationToBuild.FlavorToBuild)"
/>
So habe ich eine Reihe von Dateien (Daten, nicht Code), die generiert werden, und diese müssen in den endgültigen Binärdateien Speicherort kopiert werden.
In diesem Build, ich baue 3 Konfigurationen auf einmal: eine Debug-All-Version, eine Release-Client-Version und ein Release-WebService. Die Gründe dafür sind, die gleiche Build-Nummer und exakt dieselbe Codebasis zu behalten, während die Client- und WebService-Projekte veröffentlicht und dann von den Setup-Projekten übernommen werden.
Wenn ich versuche zu verwenden: DestinationFiles = "@ (GeneratedFiles- >‚$ (BinariesRoot) \% (ConfigurationToBuild.PlatformToBuild) \% (ConfigurationToBuild.FlavorToBuild) \% (RecursiveDir)% (Dateiname)% (Erweiterung) ') "
MSBuild löst einen Fehler im% (ConfigurationToBuild.FlavorToBuild) -Teil aus.