Dosyaları Kopyala görevi

Bağımsız Değişken Description
SourceFolder
Kaynak Klasör
(İsteğe bağlı) Kopyalamak istediğiniz dosyaları içeren klasör. Boş bırakırsanız kopyalama, repo kök klasöründen yapılır (belirttiğiniz $(Build.SourcesDirectory) gibi).
Derlemeniz sources dizininin dışında yapıtlar üretirse, işlem hattı için $(Agent.BuildDirectory) oluşturulan dizinden dosya kopyalamayı belirtin.
Contents
İçindekiler
(Gerekli) Kopyanın bir parçası olarak dahil etmek için dosya yolları. Birden çok eşleşme deseni satırı 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 bin klasöründen tekrar tekrar kopyalar

    Desen, klasör yollarını değil yalnızca dosya yollarını eşleşmek için kullanılır. Bu nedenle**\bin yerine **\bin\** gibi desenler belirtmeniz gerekir.
    Derleme aracı türünüzle eşleşen yol ayırıcısını kullanmalısınız. Örnek, / Linux aracıları için kullanılmalıdır. Aşağıda daha fazla örnek gösterilmiştir.
    Varsayılan değer: **
TargetFolder
Hedef Klasör
(Gerekli) Hedef klasör veya UNC yol dosyaları kopyaları. değişkenlerini kullanabilirsiniz.
Örnek: $(build.artifactstagingdirectory)
CleanTargetFolder
Hedef Klasörü Temizleme
(İsteğe bağlı) Kopyalamadan önce hedef klasördeki tüm mevcut dosyaları silme
Varsayılan değer: false
OverWrite
Üzerine yaz
(İsteğe bağlı) Hedef klasördeki mevcut dosyaları değiştirme
Varsayılan değer: false
flattenFolders
Klasörleri Düzle
(İsteğe bağlı) Klasör yapısını düz oluşturun ve tüm dosyaları belirtilen hedef klasöre kopyalayın
Varsayılan değer: false
preserveTimestamp
Hedef Zaman Damgasını Koruma
(İsteğe bağlı) Özgün kaynak dosyayı kullanarak hedef dosya zaman damgasını koruyabilirsiniz.
Varsayılan değer: false
retryCount
Dosyayı kopyalamak için yeniden deneme sayısı
(İsteğe bağlı) Dosyayı kopyalamak için yeniden deneme sayısını belirtin. Uzak bir konakta UNC hedef yollarında olduğu gibi aralıklı sorunları çözmeye yardımcı olabilir.
Varsayılan değer: 0
ignoreMakeDirErrors
Hedef klasör oluşturma sırasında hataları yoksayma
(İsteğe bağlı) Bu, görevin tek bir hedef klasöre sahip çeşitli aracılar tarafından paralel yürütülmesiyle ilgili sorunları önlemek için yararlı olabilir.
Varsayılan değer: false

Notlar

Hiçbir dosya eşleşmezse, görev yine de başarılı olduğunu bildirecek. Hedefte zaten eşilen bir dosya varsa, Üzerine Yaz true olarak ayarlanmadıkça görev hata bildirecek.

Örnek

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

Örnekler

Yürütülebilir dosyaları ve beni okuma dosyasını kopyalama

Hedef

Yalnızca beni ve bu C# konsol uygulamasını çalıştırmak için gereken dosyaları kopyalamak istiyorsanız:

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

Not

ConsoleApplication1.sln, .dll ve .exe içeren bir bin 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)release ayarlanır.

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şulu ile ö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şuluna sahip ö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ünde değişkenlerle örnek

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

YAML derlemeleri henüz TFS'de kullanılamıyor.

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

YAML derlemeleri henüz TFS'de kullanılamıyor.

Açık kaynak

Bu görev, üzerinde açık kaynak GitHub. Geri bildirim ve katkılar açıktır.

SSS

Dosya eşleştirme desenleri hakkında nereden daha fazla bilgi öğrenebilirim?

Dosya eşleştirme desenleri başvurusu

Nasıl yaparım? yayımlamak için bu görevi kullanıyor musunuz?

bkz. Artifacts içinde Azure Pipelines.

S: Yapıtlarımı yayımlamayla ilgili sorunm var. Ayrıntılı günlükleri nasıl görüntüleyebilirsiniz?

İşlem hattınız için ayrıntılı günlükleri etkinleştirmek için:

  1. İşlem hattınızı düzenleyin ve Değişkenler'i seçin
  2. Ad ve değere sahip yeni bir System.Debug değişken ekleme true
  3. Kaydet

S: Hangi değişkenler kullanılabilir?

A: $(Build.SourcesDirectory)$(Agent.BuildDirectory) ve, işlem hattında kullanabileceğiniz değişkenlerden yalnızca birkaçıdır. Değişkenler ifade veya betik olarak kullanılabilir.

Farklı değişken türleri hakkındabilgi edinmek için bkz.Değişkenleri tanımlama, önceden tanımlanmış değişkenler ve Klasik sürüm ve yapıt değişkenleri.

S: Görev yaml işlem hattında dağıtım iş yerinde yapıtları yayımlamama olanak sağlar, ancak bunu aşağı akış işlem hattında kullana değilim.

A: Dağıtım işleri kaynak dalların bağlamına sahip değildir ve bu nedenle yapıtları yayımlamak için uygun değildir. Bunlar öncelikli olarak yapıtları tüketmek üzere tasarlanmıştır. Geçici çözüm, bu mantığı ayrı bir iş (dağıtım işlerinize bağımlılıklar ile) halinde yalıtmaktır.

Bir aracıya ihtiyacım var mı?

Derlemenizi veya yayınını çalıştırmak için en az bir aracı gerekir.

Sorunlarımız var. Bunları nasıl gidererim?

Bkz. Derleme ve Sürüm Sorunlarını Giderme.

Varsayılan aracı havuzunu seçe değilim ve derlememi veya sürümümi kuyruğa ala bilmiyorum. Nasıl yaparım? düzeltebilir misiniz?

Bkz. Aracı havuzları.

My NuGet görev şu hatayla başarısız oluyor: "Hata: yerel sertifikayı verdiremiyor". Bunu nasıl düzeltebilirim?

Bu, güvenilen bir kök sertifika ekerek düzeltilmiştir. Ortam değişkenini derleme NODE_EXTRA_CA_CERTS=file aracınıza ekleyebilir veya görev değişkenini işlem NODE.EXTRA.CA.CERTS=file hattınıza ebilirsiniz. Bu Node.js hakkında daha fazla bilgi için bkz.Node.js belgeleri. İşlem hattınıza değişken ayarlama hakkında yönergeler için bkz. İşlem hattında değişken ayarlama.

Şirket içi TFS'yi kullanıyor ve bu özelliklerden bazılarını göremiyorum. Neden olmasın?

Bu özelliklerden bazıları yalnızca şirket Azure Pipelines şirket içinde kullanılamaz. TFS'nin en son sürümüne yükseltme yaptıysanız bazı özellikler şirket içinde kullanılabilir.

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015.3

Eşleşme desenlerini kullanarak bir kaynak klasörden hedef klasöre dosya kopyalamak için bu görevi kullanın.

Not

Microsoft Team Foundation Server (TFS) 2018 ve önceki sürümlerde derleme ve yayın işlem hatları tanımlar, çalıştırmalar derlemeler, hizmet bağlantıları hizmet uç noktaları,aşamalar ortamlar ve işler olarak da aşamalar olarak çağrılır.

Talep

Hiçbiri

YAML kod parçacığı

# Copy files
# Copy files from a source folder to a target folder using patterns matching file paths (not folder paths)
- task: CopyFiles@2
  inputs:
    #sourceFolder: # Optional
    #contents: '**' 
    targetFolder: 
    #cleanTargetFolder: false # Optional
    #overWrite: false # Optional
    #flattenFolders: false # Optional
    #preserveTimestamp: false # Optional
    #retryCount: 0 # Optional
    #ignoreMakeDirErrors: false # Optional

Bağımsız değişkenler