Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.
Ingressi dati
cartella di origine SourceFolder
-
string
.
Opzionale. Cartella contenente i file da copiare. Se la cartella è vuota, l'attività copia i file dalla cartella radice del repository come se fosse stato specificato $(Build.SourcesDirectory)
.
Se la compilazione produce artefatti all'esterno della directory di origini, specificare $(Agent.BuildDirectory)
per copiare 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.
Per 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 di file, non ai percorsi delle cartelle. Specificare modelli, ad esempio **\bin\**
anziché **\bin
.
Il wrapping di caratteri speciali in []
può essere usato per eseguire l'escape dei caratteri glob letterali in un nome file. Ad esempio, il nome di file letterale hello[a-z]
può essere preceduto da un carattere di escape come hello[[]a-z]
. Per altre informazioni, vedere Informazioni di riferimento sui modelli di corrispondenza dei file.
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 variabili. Esempio: $(build.artifactstagingdirectory)
.
CleanTargetFolder
-
pulisci cartella di destinazione
boolean
. Valore predefinito: false
Opzionale. Elimina tutti i file esistenti nella cartella di destinazione prima del processo di copia.
OverWrite
-
Sovrascrivere
boolean
. Valore predefinito: false
Opzionale. Sostituisce i file esistenti nella cartella di destinazione.
flattenFolders
-
flat folders
boolean
. Valore predefinito: false
Opzionale. 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 utilizzando il file di origine originale.
retryCount
-
Conteggio tentativi per copiare il file
string
. Valore predefinito: 0
Specifica il numero di tentativi per copiare il file. Questa stringa è utile per problemi intermittenti, ad esempio i 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 problemi intermittenti, ad esempio i percorsi di destinazione UNC in un host remoto.
ignoreMakeDirErrors
-
Ignora 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 parte di diversi agenti all'interno di una cartella di destinazione.
Opzioni di controllo delle attività
Tutte le attività hanno opzioni di controllo oltre ai relativi input di attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di uscita
Nessuno.
Osservazioni:
Se nessun file corrisponde, l'attività continuerà a segnalare l'esito positivo.
- Se
Overwrite
èfalse
e nella cartella di destinazione esiste già un file corrispondente, l'attività non segnalerà l'errore, ma registrerà che il file esiste già e lo ignorerà. - Se
Overwrite
ètrue
e nella cartella di destinazione esiste già un file corrispondente, il file corrispondente verrà sovrascritto.
Esempi
Copiare il file nella directory di gestione temporanea degli artefatti e pubblicarlo
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 Leggimi
Obiettivo
Si vuole copiare solo il file Leggimi e i file necessari per eseguire questa app console C#:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Annotazioni
ConsoleApplication1.sln contiene una cartella bin con .dll e .exe file, guarda i risultati qui sotto per vedere cosa viene spostato!
Nella scheda Variabili, $(BuildConfiguration)
è impostato su release
.
- YAML
- Classico
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 del contenuto
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Risultati
Questi file vengono copiati nella directory di gestione temporanea:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Copia tutto dalla directory di origine tranne la cartella .git
- YAML
- Classico
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 |
Funzionalità | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Questa attività viene eseguita usando le restrizioni del 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 |
Funzionalità | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Qualunque |
variabili impostabili | Qualunque |
Versione agente | 1.91.0 o versione successiva |
Categoria attività | Utilità |
Vedere anche
- Informazioni di riferimento per i criteri di corrispondenza dei file
- Come usare questa attività per pubblicare elementi
- Informazioni su come usare log dettagliati per la risoluzione dei problemi .