Attività Copy
Copia i file in un nuovo percorso del file system.
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 |
Retries |
Parametro Int32 facoltativo. Specifica il numero di tentativi da eseguire per la copia, se tutti i tentativi precedenti hanno avuto esito negativo. Il valore predefinito è zero. Nota: L'utilizzo di nuovi tentativi può nascondere un problema di sincronizzazione nel processo di compilazione. |
RetryDelayMilliseconds |
Parametro Int32 facoltativo. Specifica il ritardo tra eventuali nuovi tentativi necessari. Imposta come valore predefinito l'argomento RetryDelayMillisecondsDefault, che viene passato al costruttore CopyTask. |
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. |
UseHardlinksIfPossible |
Parametro Boolean facoltativo. Se true, vengono creati dei collegamenti reali per i file copiati invece di copiare i file. |
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.
Oltre ai parametri sopra elencati, questa attività eredita i parametri dalla classe TaskExtension, che eredita dalla classe Task. Per un elenco di tali parametri aggiuntivi e le relative descrizioni, vedere Classe di base TaskExtension.
Esempio
Nell'esempio riportato di seguito gli elementi della raccolta 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>