CopyFiles@2 - Dosyaları kopyalama v2 görevi

Eşleştirme desenlerini kullanarak kaynak klasörden hedef klasöre dosya kopyalamak için bu görevi kullanın. (Eşleştirme desenleri yalnızca dosya yollarıyla eşleşecek, klasör yollarıyla eşleşmeyecek).

Syntax

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

Girişler

SourceFolder - Kaynak Klasör
string.

İsteğe bağlı. Kopyalamak istediğiniz dosyaları içeren klasör. Klasör boşsa, görev deponun kök klasöründeki dosyaları sanki belirtilmiş gibi $(Build.SourcesDirectory) kopyalar.

Derlemeniz sources dizini dışında yapıtlar oluşturuyorsa, işlem hattı için oluşturulan dizinden dosyaları kopyalamak için öğesini belirtin $(Agent.BuildDirectory) .


Contents - Içeriği
string. Gereklidir. Varsayılan değer: **.

Kopyanın bir parçası olarak eklenecek dosya yolları. Bu dize, birden çok eşleşme deseni çizgisini destekler.

Örnek:

  • * belirtilen kaynak klasördeki tüm dosyaları kopyalar.
  • ** belirtilen kaynak klasördeki tüm dosyaları ve tüm alt klasörlerdeki tüm dosyaları kopyalar.
  • **\bin\** tüm dosyaları herhangi bir depo kutusu klasöründen özyinelemeli olarak kopyalar.

Desen, klasör yollarını değil, yalnızca dosya yollarını eşleştirmek için kullanılır. yerine desenleri **\bin\****\binbelirtin.

Derleme aracısı türünüzle eşleşen yol ayırıcısını kullanın. Örneğin, / Linux aracıları için kullanılmalıdır. Aşağıda daha fazla örnek gösterilmiştir.


TargetFolder - Hedef Klasör
string. Gereklidir.

Kopyalanan dosyaları içerecek hedef klasör veya UNC yolu. Değişkenleri kullanabilirsiniz. Örnek: $(build.artifactstagingdirectory).


CleanTargetFolder - Hedef Klasörü Temizle
boolean. Varsayılan değer: false.

İsteğe bağlı. Kopyalama işleminden önce hedef klasördeki tüm mevcut dosyaları siler.


OverWrite - Üzerine
boolean. Varsayılan değer: false.

İsteğe bağlı. Hedef klasördeki mevcut dosyaların yerini alır.


flattenFolders - Klasörleri Düzleştirme
boolean. Varsayılan değer: false.

İsteğe bağlı. Klasör yapısını düzleştirir ve tüm dosyaları belirtilen hedef klasöre kopyalar.


preserveTimestamp - Hedef Zaman Damgasını Koru
boolean. Varsayılan değer: false.

Özgün kaynak dosyayı kullanarak hedef dosya zaman damgasını korur.


retryCount - Dosyayı kopyalamak için yeniden deneme sayısı
string. Varsayılan değer: 0.

Dosyayı kopyalamak için yeniden deneme sayısını belirtir. Bu dize, uzak konakta UNC hedef yolları gibi aralıklı sorunlar için kullanışlıdır.


delayBetweenRetries - İki yeniden deneme arasındaki gecikme.
string. Varsayılan değer: 1000.

İki yeniden deneme arasındaki gecikmeyi belirtir. Bu dize, uzak konakta UNC hedef yolları gibi aralıklı sorunlar için kullanışlıdır.


ignoreMakeDirErrors - Hedef klasör oluşturma sırasında hataları yoksayın.
boolean. Varsayılan değer: false.

Hedef klasör oluşturulurken oluşan hataları yoksayar. Bu dize, görevlerin tek bir hedef klasör içindeki çeşitli aracılar tarafından paralel yürütülmesiyle ilgili sorunları önlemek için yararlıdır.


Görev denetim seçenekleri

Tüm görevlerde görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Yok.

Açıklamalar

Eşleşen dosya yoksa, görev yine de başarıyı bildirir.

  • ise Overwritefalse ve hedef klasörde eşleşen bir dosya zaten varsa, görev hata bildirmez ancak dosyanın zaten var olduğunu günlüğe kaydeder ve atlar.
  • hedef Overwrite klasörde ise true ve eşleşen bir dosya zaten varsa, eşleşen dosyanın üzerine yazılır.

Örnekler

Dosyayı yapıt hazırlama dizinine kopyalama ve yayımlama

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

Yürütülebilir dosyaları ve benioku dosyasını kopyalama

Hedef

Yalnızca benioku dosyasını ve bu C# konsol uygulamasını çalıştırmak için gereken dosyaları kopyalamak istiyorsunuz:

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

Not

ConsoleApplication1.sln , .dll ve .exe dosyaları içeren bir bölme klasörü içerir. Neyin taşındığını görmek için aşağıdaki Sonuçlar'a bakın!

Değişkenler sekmesinde olarak $(BuildConfiguration) ayarlanır release.

Birden çok eşleşme deseni içeren örnek:

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

OR koşuluna sahip örnek:

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

NOT koşulu içeren örnek:

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

İçerik bölümündeki değişkenleri içeren örnek

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

Sonuçlar

Bu dosyalar hazırlama dizinine kopyalanır:

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

.git klasörü dışındaki her şeyi kaynak dizinden kopyalayın

Birden çok eşleşme deseni içeren örnek:

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

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme
Üzerinde çalışır Agent, DeploymentGroup
Talep Hiçbiri
Özellikler Bu görev, işteki sonraki görevler için hiçbir talebi karşılamaz.
Komut kısıtlamaları Bu görev aşağıdaki komut kısıtlamaları kullanılarak çalıştırılır: kısıtlı
Ayarlanabilir değişkenler Bu görevin şu değişkenleri ayarlama izni var: Değişkenleri ayarlama devre dışı
Aracı sürümü 2.182.1 veya üzeri
Görev kategorisi Yardımcı Program
Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme
Üzerinde çalışır Agent, DeploymentGroup
Talep Hiçbiri
Özellikler Bu görev, işteki sonraki görevler için hiçbir talebi karşılamaz.
Komut kısıtlamaları Herhangi biri
Ayarlanabilir değişkenler Herhangi biri
Aracı sürümü 1.91.0 veya üzeri
Görev kategorisi Yardımcı Program

Ayrıca bkz.