Copy, tâche

Mise à jour : novembre 2007

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 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.

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.

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.

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>

Voir aussi

Concepts

Tâches MSBuild

Autres ressources

Référence des tâches MSBuild