Msbuild extensionpack Copiare tutti i contenuti di una directory ad un'altra
-
26-10-2019 - |
Domanda
Sto usando MSBuild extensionpack. Mi piacerebbe copiare l'intero contenuto della cartella di generazione in un'altra directory del file system. Non voglio di rinominare la directory di destinazione, basta sostituire il contenuto. Potrebbe essere la mia scarsa familiarità con msbuild extensionpack ma sembra che questo dovrebbe essere facile e sono stato in grado di trovare facilmente disponibile la documentazione sul web.
sto cercando di creare un servizio che viene distribuito automaticamente nell'ambiente Continuous Integration dopo una generazione corretta.
Soluzione
Per quanto mi ricordo, è necessario cancellare e copiare in fasi separate. Quindi fare il / spurgo di cancellazione, poi copiare. Non ero in grado (al momento ho fatto lo scorso) per trovare un modo per "sovrascrittura". Questo in realtà ha funzionato meglio per noi b / c un accumulo può rimuovere i file che un precedente conteneva, in modo che non li vogliono "Linger".
Per eliminare, prova (supponendo DeploymentDesintationPath è una struttura con il percorso):
<MSBuild.ExtensionPack.FileSystem.Folder
TaskAction="RemoveContent"
path="$(DeploymentDestinationPath)" />
E poi copiare (avviso è necessario compilare un ItemGroup sia per l'origine e la destinazione)
<ItemGroup>
<DeploymentSourceFiles
Include="$(BuildFolder)\**\*"
/>
<DeploymentDestinationFiles
Include="@(DeploymentSourceFiles->
'$(DeploymentDestinationPath)\%(RecursiveDir)%(Filename)%(Extension)')"
/>
</ItemGroup>
<Copy SourceFiles="@(DeploymentSourceFiles)"
DestinationFiles="@(DeploymentDestinationFiles)" />
non ho fatto in pochi mesi, quindi il perdono se uno qualsiasi di questi esempi richiedono un po 'di tweaking.