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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top