Copy – úloha
Zkopíruje soubory do nového umístění v systému souborů.
Parametry
Následující tabulka popisuje parametry úkolu Copy.
Parametr |
Description |
---|---|
CopiedFiles |
Volitelné výstupní parametry ITaskItem[]. Obsahuje položky, které byly úspěšně zkopírovány. |
DestinationFiles |
Volitelné parametry ITaskItem[]. Určí seznam souborů, do kterého zkopírovat zdrojové soubory.Tento seznam by měl být se seznamem uvedeným v parametru SourceFiles v relaci 1:1.To znamená první soubor zadaný v SourceFiles bude zkopírován na první místo určené v DestinationFiles a tak dále. |
DestinationFolder |
Volitelné parametry ITaskItem. Určuje adresář, do kterého budou zkopírovány soubory.Musí to být adresář, nikoli soubor.Pokud adresář neexistuje, je vytvořen automaticky. |
OverwriteReadOnlyFiles |
Volitelné parametry Boolean. Přepsat soubory i v případě, že jsou označeny jako soubory určené pouze pro čtení |
Retries |
Volitelné parametry Int32. Určuje, četnost provedení pokusu o kopírování, pokud všechny předchozí pokusy selhaly.Výchozí nastavení je nula. Poznámka: Použití opakování může zastínit problém se synchronizací v rámci procesu sestavení. |
RetryDelayMilliseconds |
Volitelné parametry Int32. Určuje zpoždění mezi veškerými nezbytnými opakováními.Výchozí hodnota je argument RetryDelayMillisecondsDefault, který je předán do konstruktoru CopyTask. |
SkipUnchangedFiles |
Volitelné parametry Boolean. Je-li true, přeskočí kopírování souborů, u kterých mezi zdrojem a cílem nedošlo ke změně.Úloha Copy považuje soubory za nezměněné, pokud mají stejnou velikost a stejný čas poslední aktualizace.
|
SourceFiles |
Povinný parametr ITaskItem[]. Určuje soubory ke kopírování. |
UseHardlinksIfPossible |
Volitelné parametry Boolean. Je-li true, vytvoří pevné odkazy na zkopírované soubory místo provedení kopírování souborů. |
Poznámky
Zadán musí být parametr DestinationFolder nebo DestinationFiles, nikoli však oba.Jsou-li zadány oba, úloha selže a je zaznamenána chyba.
Kromě výše uvedených parametrů zdědí tento úkol parametry ze třídy TaskExtension, která sama dědí ze třídy Task.Seznam těchto dalších parametrů a jejich popisy naleznete v tématu TaskExtension – základní třída.
Příklad
Následující příklad zkopíruje položky do kolekce položek MySourceFiles do složky 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>
Následující příklad ukazuje, jak provádět rekurzivní kopírování.Tento projekt rekurzivně zkopíruje všechny soubory z c:\MySourceTree do c:\MyDestinationTree a zachová struktury adresářů.
<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>