Freigeben über


Copy-Aufgabe

Kopiert Dateien im Dateisystem an einen neuen Speicherort.

Parameter

In der folgenden Tabelle werden die Parameter der Copy-Aufgabe beschrieben.

Parameter

Beschreibung

CopiedFiles

Optionaler ITaskItem[]-Ausgabeparameter.

Enthält die Elemente, die erfolgreich kopiert wurden.

DestinationFiles

Optionaler ITaskItem[]-Ausgabeparameter.

Gibt die Liste der Dateien an, in die die Quelldateien kopiert werden sollen.Diese Liste soll der im SourceFiles-Parameter angegebenen Liste eins zu eins entsprechen.Das heißt, die erste in SourceFiles angegebene Datei wird an den ersten in DestinationFiles angegebenen Speicherort kopiert usw.

DestinationFolder

Optionaler ITaskItem-Parameter.

Gibt das Verzeichnis an, in das die Dateien kopieren werden sollen.Es muss sich um ein Verzeichnis handeln, nicht um eine Datei.Wenn das Verzeichnis nicht vorhanden ist, wird es automatisch erstellt.

OverwriteReadOnlyFiles

Optionaler Boolean-Parameter.

Überschreibt Dateien, auch wenn sie als schreibgeschützte Dateien markiert sind.

Retries

Optionaler Int32-Parameter.

Gibt die Anzahl der Kopierversuche an, wenn alle früheren Versuche fehlgeschlagen sind.Der Standardwert ist 0 (null).

Hinweis: Die Verwendung von Wiederholungen kann ein Synchronisierungsproblem im Buildprozess maskieren.

RetryDelayMilliseconds

Optionaler Int32-Parameter.

Gibt die Verzögerung zwischen alle erforderlichen Retries an.Standardwert ist das RetryDelayMillisecondsDefault-Argument, das an den CopyTask-Konstruktor übergeben wird.

SkipUnchangedFiles

Optionaler Boolean-Parameter.

Wenn der Wert true lautet, werden Dateien, die an der Quelle und am Ziel identisch sind, beim Kopieren übersprungen.Die Copy-Aufgabe betrachtet Dateien als identisch, wenn diese dieselbe Größe aufweisen und zur selben Zeit zuletzt geändert wurden.

HinweisHinweis
Wenn Sie diesen Parameter auf true festlegen, sollten Sie für das enthaltende Ziel nicht die Abhängigkeitsanalyse verwenden, da die Aufgabe dann nur ausgeführt wird, wenn die letzte Änderung der Quelldateien weniger lange zurück liegt als die letzte Änderung der Zieldateien.

SourceFiles

Erforderlicher ITaskItem[]-Parameter.

Gibt die zu kopierenden Dateien an.

UseHardlinksIfPossible

Optionaler Boolean-Parameter.

Wenn true, werden feste Links für die kopierten Dateien erstellt, statt die Dateien zu kopieren.

Hinweise

Es muss entweder der DestinationFolder-Parameter oder der DestinationFiles-Parameter angegeben werden, jedoch nicht beide.Wenn beide angegeben werden, schlägt die Aufgabe fehl, und ein Fehler wird protokolliert.

Zusätzlich zu den oben aufgeführten Parametern erbt diese Aufgabe Parameter von der TaskExtension-Klasse, die selbst von der Task-Klasse erbt.Eine Liste mit diesen zusätzlichen Parametern und ihren Beschreibungen finden Sie unter TaskExtension-Basisklasse.

Beispiel

Im folgenden Beispiel werden die Elemente in der MySourceFiles-Elementauflistung in den Ordner c:\MyProject\Destination kopiert.

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

Im folgenden Beispiel wird veranschaulicht, wie ein rekursiver Kopiervorgang ausgeführt wird.Bei diesem Projekt werden alle Dateien rekursiv von c:\MySourceTree nach c:\MyDestinationTree kopiert, wobei die Verzeichnisstruktur beibehalten wird.

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

Siehe auch

Konzepte

MSBuild-Aufgaben

Weitere Ressourcen

Referenz zu MSBuild-Aufgaben