Copy タスクCopy Task

ファイルをファイル システム上の新しい場所にコピーします。Copies files to a new location in the file system.

パラメーターParameters

Copy タスクのパラメーターの説明を次の表に示します。The following table describes the parameters of the Copy task.

パラメーターParameter 説明Description
CopiedFiles 省略可能な ITaskItem[] 型の出力パラメーターです。Optional ITaskItem[] output parameter.

正常にコピーされたアイテムが格納されます。Contains the items that were successfully copied.
DestinationFiles 省略可能な ITaskItem[] 型のパラメーターです。Optional ITaskItem[] parameter.

ソース ファイルのコピー先ファイルの一覧を指定します。Specifies the list of files to copy the source files to. この一覧のファイルは、SourceFiles パラメーターに指定した一覧の内容と 1 対 1 で対応している必要があります。This list is expected to be a one-to-one mapping with the list specified in the SourceFiles parameter. つまり、SourceFiles の最初のファイルは、DestinationFiles の最初の場所にコピーされ、2 番目以降のファイルも同様に処理されます。That is, the first file specified in SourceFiles will be copied to the first location specified in DestinationFiles, and so forth.
DestinationFolder 省略可能な ITaskItem 型のパラメーターです。Optional ITaskItem parameter.

ファイルのコピー先ディレクトリを指定します。Specifies the directory to which you want to copy the files. ファイルではなく、ディレクトリである必要があります。This must be a directory, not a file. ディレクトリが存在しない場合は、自動的に作成されます。If the directory does not exist, it is created automatically.
OverwriteReadOnlyFiles 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

ファイルが読み取り専用としてマークされている場合でも、ファイルを上書きします。Overwrite files even if they are marked as read only files
Retries 省略可能な Int32 型のパラメーターです。Optional Int32 parameter.

コピーに失敗した場合の再試行回数を指定します。Specifies how many times to attempt to copy, if all previous attempts have failed. 既定値はゼロです。Defaults to zero.

メモ: 再試行を行った場合、ビルド処理で同期の問題が生じる可能性があるので注意してください。Note: The use of retries can mask a synchronization problem in your build process.
RetryDelayMilliseconds 省略可能な Int32 型のパラメーターです。Optional Int32 parameter.

再試行の間隔を指定します。Specifies the delay between any necessary retries. 既定値は RetryDelayMillisecondsDefault 引数であり、これが CopyTask コンストラクターに渡されます。Defaults to the RetryDelayMillisecondsDefault argument, which is passed to the CopyTask constructor.
SkipUnchangedFiles 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

true に設定すると、コピー元のファイルとコピー先のファイルで変更がない場合、コピー処理がスキップされます。If true, skips the copying of files that are unchanged between the source and destination. Copy タスクでは、ファイルのサイズが等しく、最終更新時刻が等しい場合、ファイルは変更されていないと見なされます。The Copy task considers files to be unchanged if they have the same size and the same last modified time. メモ: このパラメーターに true を設定した場合は、コピー先のファイルに対して依存関係分析を行わないでください。この設定を行った場合には、ソース ファイルの最終更新時刻が、コピー先のファイルの最終更新時刻よりも新しい場合にだけ、タスクが実行されるためです。Note: If you set this parameter to true, you should not use dependency analysis on the containing target, because that only runs the task if the last-modified times of the source files are newer than the last-modified times of the destination files.
SourceFiles 必須の ITaskItem[] 型のパラメーターです。Required ITaskItem[] parameter.

コピー元となるファイルを指定します。Specifies the files to copy.
UseHardlinksIfPossible 省略可能な Boolean 型のパラメーターです。Optional Boolean parameter.

true の場合、ファイルがコピーされるのではなく、コピーされたファイルのハード リンクが作成されます。If true, creates Hard Links for the copied files instead of copying the files.

警告Warnings

次のような警告が記録されます。Warnings are logged, including:

  • Copy.DestinationIsDirectory

  • Copy.SourceIsDirectory

  • Copy.SourceFileNotFound

  • Copy.CreatesDirectory

  • Copy.HardLinkComment

  • Copy.RetryingAsFileCopy

  • Copy.FileComment

  • Copy.RemovingReadOnlyAttribute

コメントRemarks

DestinationFolder パラメーターか DestinationFiles パラメーターのいずれかを指定する必要がありますが、両方は指定できません。Either the DestinationFolder or the DestinationFiles parameter must be specified, but not both. 両方を指定した場合、タスクは失敗し、エラーがログに記録されます。If both are specified, the task fails and an error is logged.

上記のパラメーター以外に、このタスクは TaskExtension クラスからパラメーターを継承します。このクラス自体は、Task クラスから継承されます。In addition to the parameters listed above, this task inherits parameters from the TaskExtension class, which itself inherits from the Task class. これらの追加のパラメーターの一覧とその説明については、「 TaskExtension Base Class」を参照してください。For a list of these additional parameters and their descriptions, see TaskExtension Base Class.

Example

MySourceFiles アイテム コレクション内のアイテムを C:\MyProject\Destination にコピーする例を次に示します。The following example copies the items in the MySourceFiles item collection into the folder c:\MyProject\Destination.

<Project xmlns="http://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>  

Example

再帰的なコピーを行う方法を次の例に示します。The following example demonstrates how to do a recursive copy. このプロジェクトでは、C:\MySourceTree から C:\MyDestinationTree に、ディレクトリ構造を維持しながら、すべてのファイルが再帰的にコピーされます。This project copies all of the files recursively from c:\MySourceTree into c:\MyDestinationTree, while maintaining the directory structure.

<Project xmlns="http://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>  

参照See Also

タスク Tasks
Task Reference (タスク リファレンス)Task Reference