Delen via


CopyFiles@2 - Bestanden kopiëren v2 taak

Gebruik deze taak om bestanden van een bronmap naar een doelmap te kopiëren met behulp van overeenkomende patronen. (De overeenkomstpatronen komen alleen overeen met bestandspaden, niet mappaden).

Syntaxis

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

Invoer

SourceFolder - bronmap
string.

Facultatief. De map met de bestanden die u wilt kopiëren. Als de map leeg is, kopieert de taak bestanden uit de hoofdmap van de opslagplaats alsof $(Build.SourcesDirectory) is opgegeven.

Als uw build artefacten produceert buiten de bronmap, geeft u $(Agent.BuildDirectory) op om bestanden te kopiëren uit de map die voor de pijplijn is gemaakt.


Contents - Inhoudsopgave
string. Verplicht. Standaardwaarde: **.

De bestandspaden die moeten worden opgenomen als onderdeel van de kopie. Deze tekenreeks ondersteunt meerdere regels overeenkomstpatronen.

Voorbeeld:

  • * alle bestanden in de opgegeven bronmap kopieert.
  • ** kopieert alle bestanden in de opgegeven bronmap en alle bestanden in alle submappen.
  • **\bin\** kopieert alle bestanden recursief vanuit een bin-map.

Het patroon wordt gebruikt om alleen bestandspaden te vinden, niet mappaden. Geef patronen op, zoals **\bin\** in plaats van **\bin.

Speciale tekens verpakken in [] kunnen worden gebruikt om letterlijke globtekens in een bestandsnaam te ontsnappen. De letterlijke bestandsnaam hello[a-z] kan bijvoorbeeld worden ontsnapt als hello[[]a-z]. Zie Referentiemateriaal voor bestandskoppelingspatronenvoor meer informatie.

Gebruik het padscheidingsteken dat overeenkomt met het type buildagent. / moet bijvoorbeeld worden gebruikt voor Linux-agents. Hieronder ziet u meer voorbeelden.


TargetFolder - doelmap
string. Verplicht.

De doelmap of het UNC-pad dat de gekopieerde bestanden bevat. U kunt variabelengebruiken. Voorbeeld: $(build.artifactstagingdirectory).


CleanTargetFolder - doelmap opschonen
boolean. Standaardwaarde: false.

Facultatief. Hiermee verwijdert u alle bestaande bestanden in de doelmap vóór het kopieerproces.


OverWrite - overschrijven
boolean. Standaardwaarde: false.

Facultatief. Vervangt de bestaande bestanden in de doelmap.


flattenFolders - mappen plat maken
boolean. Standaardwaarde: false.

Facultatief. Hiermee wordt de mapstructuur platgemaakt en worden alle bestanden gekopieerd naar de opgegeven doelmap.


preserveTimestamp - Behoud van het doeltijdstempel
boolean. Standaardwaarde: false.

Behoudt de tijdstempel van het doelbestand met behulp van het originele bronbestand.


retryCount - Aantal nieuwe pogingen om het bestand te kopiëren
string. Standaardwaarde: 0.

Hiermee geeft u het aantal nieuwe pogingen op om het bestand te kopiëren. Deze tekenreeks is handig voor incidentele problemen, zoals UNC-doelpaden op een externe host.


delayBetweenRetries - Vertraging tussen twee nieuwe pogingen.
string. Standaardwaarde: 1000.

Hiermee geeft u de vertraging op tussen twee nieuwe pogingen. Deze tekenreeks is handig voor incidentele problemen, zoals UNC-doelpaden op een externe host.


ignoreMakeDirErrors - Negeer fouten tijdens het maken van de doelmap.
boolean. Standaardwaarde: false.

Negeleert fouten die optreden tijdens het maken van de doelmap. Deze tekenreeks is handig om problemen te voorkomen met de parallelle uitvoering van taken door meerdere agents binnen één doelmap.


Opties voor taakbeheer

Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Als er geen bestanden overeenkomen, wordt de taak nog steeds geslaagd.

  • Als Overwrite dit het geval is false en er al een overeenkomend bestand bestaat in de doelmap, wordt de fout niet gerapporteerd door de taak, maar wordt geregistreerd dat het bestand al bestaat en wordt het overgeslagen.
  • Als Overwrite dit het geval is true en er al een overeenkomend bestand bestaat in de doelmap, wordt het overeenkomende bestand overschreven.

Voorbeelden

Kopieer het bestand naar de map met artefacten en publiceer

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

Uitvoerbare bestanden en een leesmij-bestand kopiëren

Doel

U wilt alleen de leesmij-app en de bestanden kopiëren die nodig zijn om deze C#-console-app uit te voeren:

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

Opmerking

ConsoleApplication1.sln bevat een prullenbak map met .dll en .exe bestanden, zie de resultaten hieronder om te zien wat er wordt verplaatst!

Op het tabblad $(BuildConfiguration) Variabelen is ingesteld op release.

Voorbeeld met meerdere zoekpatronen:

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

Voorbeeld met OF-voorwaarde:

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

Voorbeeld met NIET-voorwaarde:

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

Voorbeeld met variabelen in de inhoudssectie

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

Resultaten

Deze bestanden worden gekopieerd naar de staging directory:

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

Kopieer alles uit de bronmap behalve de .git-map

Voorbeeld met meerdere zoekpatronen:

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

Behoeften

Voorwaarde Beschrijving
Pijplijntypen YAML, klassieke build
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Mogelijkheden Deze taak voldoet niet aan de vereisten voor volgende taken in de taak.
opdrachtbeperkingen Deze taak wordt uitgevoerd met behulp van de volgende opdrachtbeperkingen: beperkt
variabelen instellen Deze taak is gemachtigd om de volgende variabelen in te stellen : Variabelen instellen is uitgeschakeld
Agentversie 2.182.1 of hoger
Taakcategorie Nutsvoorzieningen
Voorwaarde Beschrijving
Pijplijntypen YAML, klassieke build
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Mogelijkheden Deze taak voldoet niet aan de vereisten voor volgende taken in de taak.
opdrachtbeperkingen Welke dan ook
variabelen instellen Welke dan ook
Agentversie 1.91.0 of hoger
Taakcategorie Nutsvoorzieningen

Zie ook