Condividi tramite


CopyFiles@2 - Copiare file v2 attività

Usare questa attività per copiare i file da una cartella di origine a una cartella di destinazione usando modelli di corrispondenza. I modelli di corrispondenza corrispondono solo ai percorsi dei file, non ai percorsi delle cartelle.

Sintassi

# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
  inputs:
    #SourceFolder: # string. Source Folder. 
    Contents: '**' # string. Required. Contents. Default: **.
    TargetFolder: # string. Required. Target Folder. 
  # Advanced
    #CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
    #OverWrite: false # boolean. Overwrite. Default: false.
    #flattenFolders: false # boolean. Flatten Folders. Default: false.
    #preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
    #retryCount: '0' # string. Retry count to copy the file. Default: 0.
    #delayBetweenRetries: '1000' # string. Delay between two retries. Default: 1000.
    #ignoreMakeDirErrors: false # boolean. Ignore errors during creation of target folder. Default: false.
# Copy files v2
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths).
- task: CopyFiles@2
  inputs:
    #SourceFolder: # string. Source Folder. 
    Contents: '**' # string. Required. Contents. Default: **.
    TargetFolder: # string. Required. Target Folder. 
  # Advanced
    #CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
    #OverWrite: false # boolean. Overwrite. Default: false.
    #flattenFolders: false # boolean. Flatten Folders. Default: false.
    #preserveTimestamp: false # boolean. Preserve Target Timestamp. Default: false.
# Copy Files v2
# Copy files from source folder to target folder using match patterns (The match patterns will only match file paths, not folder paths).
- task: CopyFiles@2
  inputs:
    #SourceFolder: # string. Source Folder. 
    Contents: '**' # string. Required. Contents. Default: **.
    TargetFolder: # string. Required. Target Folder. 
  # Advanced
    #CleanTargetFolder: false # boolean. Clean Target Folder. Default: false.
    #OverWrite: false # boolean. Overwrite. Default: false.
    #flattenFolders: false # boolean. Flatten Folders. Default: false.

Input

SourceFolder - Cartella di origine
string.

facoltativo. Cartella contenente i file da copiare. Se la cartella è vuota, l'attività copia i file dalla cartella radice del repository come se $(Build.SourcesDirectory) fosse stato specificato.

Se la compilazione produce artefatti all'esterno della directory di origini, specificare per copiare $(Agent.BuildDirectory) i file dalla directory creata per la pipeline.


Contents - Contenuto
string. Obbligatorio. Valore predefinito: **.

Percorsi di file da includere come parte della copia. Questa stringa supporta più righe di modelli di corrispondenza.

Ad esempio:

  • * copia tutti i file nella cartella di origine specificata.
  • ** copia tutti i file nella cartella di origine specificata e tutti i file in tutte le sottocartelle.
  • **\bin\** copia tutti i file in modo ricorsivo da qualsiasi cartella bin.

Il modello viene usato per corrispondere solo ai percorsi dei file, non ai percorsi delle cartelle. Specificare i modelli, ad esempio **\bin\** anziché **\bin.

Usare il separatore di percorso corrispondente al tipo di agente di compilazione. Ad esempio, / deve essere usato per gli agenti Linux. Di seguito sono riportati altri esempi.


TargetFolder - Cartella di destinazione
string. Obbligatorio.

Cartella di destinazione o percorso UNC che conterrà i file copiati. È possibile usare le variabili. Esempio: $(build.artifactstagingdirectory).


CleanTargetFolder - Pulire la cartella di destinazione
boolean. Valore predefinito: false.

facoltativo. Elimina tutti i file esistenti nella cartella di destinazione prima del processo di copia.


OverWrite - Sovrascrivere
boolean. Valore predefinito: false.

facoltativo. Sostituisce i file esistenti nella cartella di destinazione.


flattenFolders - Cartelle flat
boolean. Valore predefinito: false.

facoltativo. Appiattisce la struttura di cartelle e copia tutti i file nella cartella di destinazione specificata.


preserveTimestamp - Mantieni timestamp di destinazione
boolean. Valore predefinito: false.

Mantiene il timestamp del file di destinazione usando il file di origine originale.


retryCount - Conteggio tentativi per copiare il file
string. Valore predefinito: 0.

Specifica il conteggio dei tentativi per copiare il file. Questa stringa è utile per i problemi intermittenti, ad esempio percorsi di destinazione UNC in un host remoto.


delayBetweenRetries - Ritardo tra due tentativi.
string. Valore predefinito: 1000.

Specifica il ritardo tra due tentativi. Questa stringa è utile per i problemi intermittenti, ad esempio percorsi di destinazione UNC in un host remoto.


ignoreMakeDirErrors - Ignorare gli errori durante la creazione della cartella di destinazione.
boolean. Valore predefinito: false.

Ignora gli errori che si verificano durante la creazione della cartella di destinazione. Questa stringa è utile per evitare problemi con l'esecuzione parallela di attività da diversi agenti all'interno di una cartella di destinazione.


Opzioni di controllo delle attività

Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni

Se non corrispondono file, l'attività segnala comunque l'esito positivo.

  • Se Overwrite è false e esiste già un file corrispondente nella cartella di destinazione, l'attività non segnala l'errore, ma registra che il file esiste già e lo ignora.
  • Se Overwrite è true e esiste già un file corrispondente nella cartella di destinazione, il file corrispondente verrà sovrascritto.

Esempi

Copiare il file nella directory di gestione temporanea degli artefatti e pubblicare

steps:
- task: CopyFiles@2
  inputs:
    contents: '_buildOutput/**'
    targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
  inputs:
    pathToPublish: $(Build.ArtifactStagingDirectory)
    artifactName: MyBuildOutputs

Copiare file eseguibili e un file readme

Obiettivo

Si vuole copiare solo il readme e i file necessari per eseguire questa app console C#:

`-- ConsoleApplication1
    |-- ConsoleApplication1.sln
    |-- readme.txt
    `-- ClassLibrary1
        |-- ClassLibrary1.csproj
    `-- ClassLibrary2
        |-- ClassLibrary2.csproj
    `-- ConsoleApplication1
        |-- ConsoleApplication1.csproj

Nota

ConsoleApplication1.sln contiene una cartella bin con .dll e .exe file, vedere i risultati seguenti per vedere cosa viene spostato!

Nella scheda $(BuildConfiguration) Variabili è impostata su release.

Esempio con più modelli di corrispondenza:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\ConsoleApplication1\bin\**\*.exe
      ConsoleApplication1\ConsoleApplication1\bin\**\*.dll
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Esempio con condizione OR:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Esempio con condizione NOT:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    Contents: |
      ConsoleApplication1\**\bin\**\!(*.pdb|*.config)
      !ConsoleApplication1\**\ClassLibrary*\**
      ConsoleApplication1\readme.txt
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Esempio con variabili nella sezione contenuto

- task: CopyFiles@2
  inputs:
    Contents: '$(Build.Repository.LocalPath)/**' 
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Risultati

Questi file vengono copiati nella directory di staging:

`-- ConsoleApplication1
    |-- readme.txt
    `-- ConsoleApplication1
        `-- bin
            `-- Release
                | -- ClassLibrary1.dll
                | -- ClassLibrary2.dll
                | -- ConsoleApplication1.exe

Copiare tutto dalla directory di origine, ad eccezione della cartella .git

Esempio con più modelli di corrispondenza:

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)'
    Contents: |
      **/*
      !.git/**/*
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica
Viene eseguito in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Questa attività viene eseguita usando le restrizioni di comando seguenti: con restrizioni
Variabili impostabili Questa attività dispone dell'autorizzazione per impostare le variabili seguenti: L'impostazione delle variabili è disabilitata
Versione agente 2.182.1 o versione successiva
Categoria attività Utilità
Requisito Descrizione
Tipi di pipeline YAML, build classica
Viene eseguito in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 1.91.0 o versione successiva
Categoria attività Utilità

Vedi anche