Copy, tâche
Copie des fichiers du système de fichiers vers un nouvel emplacement.
Paramètres
Le tableau suivant décrit les paramètres de la tâche Copy.
Paramètre |
Description |
---|---|
CopiedFiles |
Paramètre de sortie ITaskItem[] facultatif. Contient les éléments dont la copie a réussi. |
DestinationFiles |
Paramètre de sortie ITaskItem[] facultatif. Spécifie la liste des fichiers vers lesquels copier les fichiers sources. Cette liste représente en principe un mappage un à un avec la liste spécifiée dans le paramètre SourceFiles. En d'autres termes, le premier fichier spécifié dans SourceFiles est copié vers le premier emplacement spécifié dans DestinationFiles, et ainsi de suite. |
DestinationFolder |
Paramètre ITaskItem facultatif. Spécifie le répertoire vers lequel vous souhaitez copier les fichiers. Il doit s'agir d'un répertoire, pas d'un fichier. Si le répertoire n'existe pas, il est automatiquement créé. |
OverwriteReadOnlyFiles |
Paramètre Boolean facultatif. Écrase les fichiers même s'ils sont marqués comme fichiers en lecture seule. |
Retries |
Paramètre Int32 facultatif. Spécifie le nombre de tentatives de copie, si toutes les tentatives précédentes ont échoué. La valeur par défaut est zéro. Remarque : l'utilisation de plusieurs tentatives peut masquer un problème de synchronisation dans votre processus de génération. |
RetryDelayMilliseconds |
Paramètre Int32 facultatif. Spécifie le délai entre les tentatives requises. La valeur par défaut est l'argument RetryDelayMillisecondsDefault, qui est passé au constructeur CopyTask. |
SkipUnchangedFiles |
Paramètre Boolean facultatif. Si la valeur est true, ignore la copie de fichiers inchangés entre la source et destination. La tâche Copy considère que des fichiers sont inchangés lorsqu'ils présentent la même taille et les mêmes date et heure de dernière modification.
Remarque
Si vous affectez la valeur true à ce paramètre, vous ne devez pas utiliser l'analyse de dépendances sur la cible conteneur car, dans ce cas, la tâche est alors uniquement exécutée lorsque les dates/heures de dernière modification des fichiers sources sont postérieures à celles des fichiers de destination.
|
SourceFiles |
Paramètre ITaskItem[] obligatoire. Spécifie les fichiers à copier. |
UseHardlinksIfPossible |
Paramètre Boolean facultatif. Si la valeur est true, des liens physiques sont créés pour les fichiers copiés, au lieu de copier les fichiers. |
Notes
Le paramètre DestinationFolder ou DestinationFiles doit être spécifié, mais pas les deux. Si les deux sont spécifiés, la tâche échoue et une erreur est consignée.
En plus des paramètres énumérés ci-dessus, cette tâche hérite des paramètres de la classe TaskExtension, qui hérite elle-même de la classe Task. Pour obtenir la liste de ces paramètres supplémentaires et de leurs descriptions, consultez Classe TaskExtension Base.
Exemple
L'exemple suivant copie les éléments de la collection d'éléments MySourceFiles dans le dossier 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>
L'exemple suivant montre comment effectuer une copie récursive. Ce projet effectue la copie récursive de tous les fichiers depuis c:\MySourceTree vers c:\MyDestinationTree en conservant la structure de répertoires.
<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>