Dosyaları Kopyala görevi
| Bağımsız Değişken | Description |
|---|---|
SourceFolderKaynak 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:
|
TargetFolderHedef Klasör |
(Gerekli) Hedef klasör veya UNC yol dosyaları kopyaları. değişkenlerini kullanabilirsiniz. Örnek: $(build.artifactstagingdirectory) |
CleanTargetFolderHedef 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 |
flattenFoldersKlasö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 |
preserveTimestampHedef Zaman Damgasını Koruma |
(İsteğe bağlı) Özgün kaynak dosyayı kullanarak hedef dosya zaman damgasını koruyabilirsiniz. Varsayılan değer: false |
retryCountDosyayı 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 |
ignoreMakeDirErrorsHedef 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:
- İşlem hattınızı düzenleyin ve Değişkenler'i seçin
- Ad ve değere sahip yeni bir
System.Debugdeğişken eklemetrue - 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
Yardımcı Program: Dosyaları Kopyalama