Aracılığıyla paylaş


CopyFiles@2 - Dosyaları kopyala 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).

Sözdizimi

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

Girişler

kaynak klasörSourceFolder -
string.

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

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


Contents - İçeriği
string. Gerekli. Varsayılan değer: **.

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

Örneğin:

  • * 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 bin klasöründen özyinelemeli olarak kopyalar.

Desen, klasör yollarıyla değil, yalnızca dosya yollarıyla eşleştirmek için kullanılır. **\bin\**yerine **\bin gibi desenler belirtin.

[]'de özel karakterleri sarmalama, bir dosya adındaki değişmez değer glob karakterlerini atlamak için kullanılabilir. Örneğin, sabit dosya adı hello[a-z]hello[[]a-z]olarak değiştirilebilir. Daha fazla bilgi için bkz. dosya eşleştirme desenleri başvurusu .

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.


Hedef KlasörTargetFolder -
string. Gerekli.

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.

Opsiyonel. Kopyalama işleminden önce hedef klasördeki tüm mevcut dosyaları siler.


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

Opsiyonel. Hedef klasördeki mevcut dosyaları değiştirir.


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

Opsiyonel. 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 sayıyı yeniden deneyin
string. Varsayılan değer: 0.

Dosyayı kopyalamak için yeniden deneme sayısını belirtir. Bu dize, uzak bir ana bilgisayardaki UNC hedef yolları gibi zaman zaman ortaya çıkan 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 bir ana bilgisayardaki UNC hedef yolları gibi zaman zaman ortaya çıkan sorunlar için kullanışlıdır.


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

Hedef klasörün oluşturulması sırasında oluşan hataları yok sayar. Bu dize, görevlerin tek bir hedef klasördeki birkaç aracı tarafından paralel olarak yürütülmesiyle ilgili sorunları önlemek için kullanışlıdır.


Görev denetim seçenekleri

Tüm görevlerin, 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ılı olduğunu bildirir.

  • Eğer Overwrite ve false 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 Overwritetrue klasörde eşleşen bir dosya zaten varsa, eşleşen dosyanın üzerine yazılır.

Örnekler

Dosyayı yapıt hazırlama dizinine kopyalayın ve yayımlayın

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

Amaç

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

Uyarı

ConsoleApplication1.sln , .dll ve .exe dosyalarını içeren bir bin klasörü içeriyorsa, nelerin taşındığını görmek için aşağıdaki Sonuçlara bakın!

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

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

VEYA koşulu olan ö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 olan ö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şkenlerle ö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

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

Birden fazla 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 Aracı, DeploymentGroup
Talep Hiç kimse
Özellikleri Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz.
Komut kısıtlamaları Bu görev,aşağıdaki komut kısıtlamaları kullanılarak çalışır: restricted
Ayarlanabilir değişkenleri Bu görevin aşağıdaki değişkenleri ayarlama izni var: Değişkenleri ayarlama devre dışı bırakıldı
Aracı sürümü 2.182.1 veya üzeri
Görev kategorisi Fayda
Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme
Üzerinde çalışır Aracı, DeploymentGroup
Talep Hiç kimse
Özellikleri Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz.
Komut kısıtlamaları Herhangi biri
Ayarlanabilir değişkenleri Herhangi biri
Aracı sürümü 1.91.0 veya üzeri
Görev kategorisi Fayda

Ayrıca bakınız