Copy 工作
將檔案複製到檔案系統上新的位置。
參數
下表說明 Copy 工作的參數。
參數 |
描述 |
||
---|---|---|---|
CopiedFiles |
選擇性的 ITaskItem[] 輸出參數。 包含已順利複製的項目。 |
||
DestinationFiles |
選擇性 ITaskItem[] 參數。 指定要複製來源檔的檔案清單。 在這份清單以及 SourceFiles 參數所指定的清單之間,應該會有一對一的對應關係。 也就是說,在 SourceFiles 中指定的第一個檔案,將會複製到在 DestinationFiles 中指定的第一個位置,其他依此類推。 |
||
DestinationFolder |
選擇性 ITaskItem 參數。 指定要複製檔案的目錄。 這必須是目錄,而不是檔案。 如果目錄不存在,就會自動建立目錄。 |
||
OverwriteReadOnlyFiles |
選擇性 Boolean 參數。 即使檔案標記為唯讀,也會覆寫檔案 |
||
Retries |
選擇性 Int32 參數。 指定先前每次嘗試複製都失敗時,嘗試複製的次數。 預設為零。 注意:使用重試可能會掩蓋建置程序中的同步處理問題。 |
||
RetryDelayMilliseconds |
選擇性 Int32 參數。 指定任何必要重試之間的延遲。 預設為傳遞至 CopyTask 建構函式的 RetryDelayMillisecondsDefault 引數。 |
||
SkipUnchangedFiles |
選擇性 Boolean 參數。 如果為 true,則會略過尚未在來源和目的之間變更過的檔案,不予複製。 如果檔案具有相同大小和相同最後修改時間,Copy 工作便會將檔案視為未變更。
|
||
SourceFiles |
必要的 ITaskItem[] 參數。 指定要複製的檔案。 |
||
UseHardlinksIfPossible |
選擇性 Boolean 參數。 如果為 true,則會建立所複製檔案的永久連結,而不是複製這些檔案。 |
備註
必須指定 DestinationFolder 或 DestinationFiles 參數,不過不能同時指定兩者。 如果同時指定兩者,工作便會失敗並會記錄一項錯誤。
除了以上列出的參數之外,此項工作還會繼承 TaskExtension 類別中的參數,而該類別本身又繼承 Task 類別。 如需這些錯誤碼的清單及其說明,請參閱 TaskExtension 基底類別。
範例
下列範例將 MySourceFiles 項目集合中的項目複製到 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>
下列範例示範如何進行遞迴複製。 此專案從 c:\MySourceTree 將所有檔案遞迴複製到 c:\MyDestinationTree,並同時維護目錄結構。
<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>