2009-04-22 14 views
20

Ich habe das folgende Msbuild-Skript, das das gesamte DeploymentDirectory in das VersionSpecificDirectory kopiert. Hier ist der Code-Schnipsel:So legen Sie die Ordnerstruktur mit der Msbuild-Kopieraufgabe fest

<CreateItem Include="$(DeploymentDirectory)/**/*.*" > 
    <Output ItemName="AllDeploymentFilesToCopy" TaskParameter="Include" /> 
</CreateItem> 
<Copy SourceFiles="@(AllDeploymentFilesToCopy)" 
     DestinationFiles="@(AllDeploymentFilesToCopy->'$(VersionSpecificDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" /> 

Was würde das Skript sein für das Kopieren alle Dateien im DeploymentDirectory anstelle des Verzeichnisses selbst?

Update: Ich habe versucht, die Richtung des Schrägstrichs zu einem umgekehrten Schrägstrich zu ändern, und das Problem besteht immer noch.

Ein weiteres Update: Dies war nicht mit dem Msbuild-Code verwandt. Sowohl der Code in meiner Frage als auch der Code in der Antwort funktionieren dafür gut.

Antwort

33

Versuchen Sie folgendes:

<ItemGroup> 
    <MySourceFiles Include="c:\MySourceTree\**\*.*"/> 
</ItemGroup> 

<Target Name="CopyFiles"> 
    <Copy 
     SourceFiles="@(MySourceFiles)" 
     DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')" 
    /> 
</Target> 

Von MSDN.

Verwandte Themen