Attività Copy
Aggiornamento: novembre 2007
Copia i file del file system in un nuovo percorso.
Parametri
Nella tabella riportata di seguito sono descritti i parametri dell'attività Copy.
Parametro |
Descrizione |
---|---|
CopiedFiles |
Parametro di output ITaskItem[] facoltativo. Contiene gli elementi copiati. |
DestinationFiles |
Parametro ITaskItem[] facoltativo. Specifica l'elenco di file in cui copiare i file di origine. Si prevede che esista un mapping uno-a-uno tra questo elenco e quello specificato nel parametro SourceFiles. In altri termini, il primo file specificato in SourceFiles verrà copiato nel primo percorso specificato in DestinationFiles e così via. |
DestinationFolder |
Parametro ITaskItem facoltativo. Specifica la directory in cui si desidera copiare i file. Deve trattarsi di una directory, non di un file. Se la directory non esiste, viene creata automaticamente. |
OverwriteReadOnlyFiles |
Parametro Boolean facoltativo. Sovrascrive i file anche se sono contrassegnati come file di sola lettura |
SkipUnchangedFiles |
Parametro Boolean facoltativo. Se il parametro è impostato su true, i file rimasti invariati dall'origine alla destinazione non vengono copiati. L'attività Copy considera invariati i file con le stesse dimensioni e la stessa ora dell'ultima modifica. Nota Se questo parametro viene impostato su true, si consiglia di non utilizzare l'analisi delle dipendenze nella destinazione contenitore, perché in questo caso l'attività viene eseguita soltanto se l'ora dell'ultima modifica dei file di origine è più recente rispetto a quella dei file di destinazione. |
SourceFiles |
Parametro ITaskItem[] obbligatorio. Specifica i file da copiare. |
Note
È necessario specificare il parametro DestinationFolder o DestinationFiles, ma non entrambi. Se vengono specificati entrambi, l'attività avrà esito negativo e verrà registrato un errore.
Esempio
Nell'esempio riportato di seguito gli elementi dell'insieme MySourceFiles vengono copiati nella cartella c:\MyProject\Destination.
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceFiles Include="a.cs;b.cs;c.cs"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="c:\MyProject\Destination"
/>
</Target>
</Project>
Nell'esempio riportato di seguito viene illustrato come creare una copia ricorsiva. Tutti i file del progetto vengono copiati in modo ricorsivo da c:\MySourceTree a c:\MyDestinationTree, mantenendo al tempo stesso la struttura di directory.
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceFiles Include="c:\MySourceTree\**\*.*"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')"
/>
</Target>
</Project>