Compartilhar via


Tarefa Copy

Copia arquivos para um novo local no sistema de arquivos.

Parâmetros

A tabela a seguir descreve os parâmetros da tarefa Copy.

Parâmetro

Descrição

CopiedFiles

Parâmetro de saída opcional de ITaskItem[].

Contém os itens que foram copiados com êxito.

DestinationFiles

Parâmetro opcional de ITaskItem[].

Especifica a lista de arquivos para copiar os arquivos de origem para. Esta lista seja um mapeamento um-para-um com a lista especificada no parâmetro de SourceFiles . Isto é, o primeiro arquivo especificado em SourceFiles será copiado para o primeiro local especificado em DestinationFiles, e assim por diante.

DestinationFolder

Parâmetro opcional de ITaskItem.

Especifica o diretório a que você deseja copiar os arquivos. Isso deve ser um diretório, não um arquivo. Se o diretório não existe, ele é criado automaticamente.

OverwriteReadOnlyFiles

Parâmetro opcional de Boolean.

Substitua arquivos mesmo se são marcados como arquivos somente leitura

Retries

Parâmetro opcional de Int32.

Especifica quantas vezes tentar copiar, se todas as tentativas anteriores falharam. Opções para zero.

Observação:    O uso do tenta pode mascarar um problema de sincronização no processo de compilação.

RetryDelayMilliseconds

Parâmetro opcional de Int32.

Especifica o atraso entre todas as novas tenta necessárias. Tem como padrão o argumento de RetryDelayMillisecondsDefault, que é passado para o construtor de CopyTask.

SkipUnchangedFiles

Parâmetro opcional de Boolean.

Se true, ignora a cópia dos arquivos que são inalteradas entre a fonte e o alvo. A tarefa de Copy considera ser arquivos inalterados se eles tiverem o mesmo tamanho e os mesmos hora da última modificação.

Dica

Se você definir este parâmetro a true, você usar a análise de dependência no destino recipiente, porque isso executa somente a tarefa se a hora da última modificação dos arquivos de origem são mais recentes dos hora da última modificação dos arquivos de destino.

SourceFiles

Parâmetro necessário ITaskItemde[] .

Especifica os arquivos para copiar.

UseHardlinksIfPossible

Parâmetro opcional de Boolean.

Se true, criar links físicos para os arquivos copiados em vez de copiar os arquivos.

Comentários

DestinationFolder ou o parâmetro de DestinationFiles devem ser especificados, mas não ambos. Se ambos são especificados, a tarefa falha e um erro está conectado.

Além dos parâmetros listados acima, essa tarefa herda parâmetros da classe TaskExtension, que é herdada da própria classe Task. Para obter uma lista desses parâmetros adicionais e suas descrições, consulte Classe TaskExtension (base).

Exemplo

O exemplo a seguir copia os itens na coleção de item de MySourceFiles na pasta 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>

O exemplo a seguir demonstra como fazer uma cópia recursiva. Este projeto copia todos os arquivos recursivamente de c:\MySourceTree em c:\MyDestinationTree, mantendo a estrutura de diretórios.

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

Consulte também

Conceitos

Tarefas do MSBuild

Outros recursos

Referência das tarefas do MSBuild