Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
To zadanie służy do kopiowania plików z folderu źródłowego do folderu docelowego przy użyciu wzorców dopasowania. (Wzorce dopasowania będą zgodne tylko ze ścieżkami plików, a nie ścieżkami folderów).
Składnia
# 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.
Dane wejściowe
folderu źródłowego SourceFolder
-
string
.
Opcjonalny. Folder zawierający pliki, które chcesz skopiować. Jeśli folder jest pusty, zadanie kopiuje pliki z folderu głównego repozytorium tak, jakby zostało określone $(Build.SourcesDirectory)
.
Jeśli kompilacja generuje artefakty poza katalogiem źródeł, określ $(Agent.BuildDirectory)
, aby skopiować pliki z katalogu utworzonego dla potoku.
Contents
-
zawartość
string
. To jest wymagane. Wartość domyślna: **
.
Ścieżki plików do uwzględnienia w ramach kopii. Ten ciąg obsługuje wiele wierszy wzorców dopasowania.
Przykład:
-
*
kopiuje wszystkie pliki w określonym folderze źródłowym. -
**
kopiuje wszystkie pliki w określonym folderze źródłowym i wszystkie pliki we wszystkich podfolderach. -
**\bin\**
kopiuje wszystkie pliki cyklicznie z dowolnego folderu bin.
Wzorzec służy do dopasowywania tylko ścieżek plików, a nie ścieżek folderów. Określ wzorce, takie jak **\bin\**
zamiast **\bin
.
Zawijanie znaków specjalnych w []
może służyć do ucieczki znaków globu literału w nazwie pliku. Na przykład nazwę pliku literału hello[a-z]
można stosować jako hello[[]a-z]
. Aby uzyskać więcej informacji, zobacz Odwołania do wzorców dopasowywania plików.
Użyj separatora ścieżki zgodnego z typem agenta kompilacji. Na przykład /
muszą być używane dla agentów systemu Linux. Poniżej przedstawiono więcej przykładów.
folder docelowy TargetFolder
-
string
. To jest wymagane.
Folder docelowy lub ścieżka UNC, która będzie zawierać skopiowane pliki. Możesz użyć zmiennych . Przykład: $(build.artifactstagingdirectory)
.
CleanTargetFolder
-
wyczyść folder docelowy
boolean
. Wartość domyślna: false
.
Opcjonalny. Usuwa wszystkie istniejące pliki w folderze docelowym przed procesem kopiowania.
OverWrite
-
zastępowanie
boolean
. Wartość domyślna: false
.
Opcjonalny. Zastępuje istniejące pliki w folderze docelowym.
flattenFolders
-
folderów spłaszczanych
boolean
. Wartość domyślna: false
.
Opcjonalny. Spłaszcza strukturę folderów i kopiuje wszystkie pliki do określonego folderu docelowego.
preserveTimestamp
-
Zachowaj docelowy znacznik czasu
boolean
. Wartość domyślna: false
.
Zachowuje sygnaturę czasową pliku docelowego przy użyciu oryginalnego pliku źródłowego.
retryCount
-
Ponawianie liczby prób w celu skopiowania pliku
string
. Wartość domyślna: 0
.
Określa liczbę ponownych prób skopiowania pliku. Ten ciąg jest przydatny w przypadku sporadycznych problemów, takich jak ścieżki docelowe UNC na hoście zdalnym.
delayBetweenRetries
-
Opóźnienie między dwiema ponownymi próbami.
string
. Wartość domyślna: 1000
.
Określa opóźnienie między dwoma ponownymi próbami. Ten ciąg jest przydatny w przypadku sporadycznych problemów, takich jak ścieżki docelowe UNC na hoście zdalnym.
ignoreMakeDirErrors
-
Ignoruj błędy podczas tworzenia folderu docelowego.
boolean
. Wartość domyślna: false
.
Ignoruje błędy, które wystąpiły podczas tworzenia folderu docelowego. Ten ciąg jest przydatny do unikania problemów z równoległym wykonywaniem zadań przez kilku agentów w jednym folderze docelowym.
Opcje sterowania zadania
Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.
Zmienne wyjściowe
Żaden.
Uwagi
Jeśli żadne pliki nie są zgodne, zadanie będzie nadal zgłaszać powodzenie.
- Jeśli
Overwrite
tak jestfalse
, a dopasowany plik już istnieje w folderze docelowym, zadanie nie zgłosi błędu, ale zarejestruje, że plik już istnieje i pominie go. - Jeśli
Overwrite
tak jesttrue
, a dopasowany plik już istnieje w folderze docelowym, dopasowany plik zostanie nadpisany.
Przykłady
Kopiowanie pliku do katalogu przejściowego artefaktów i publikowanie
steps:
- task: CopyFiles@2
inputs:
contents: '_buildOutput/**'
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Kopiowanie plików wykonywalnych i pliku readme
Cel
Chcesz skopiować tylko plik readme i pliki potrzebne do uruchomienia tej aplikacji konsolowej języka C#:
`-- ConsoleApplication1
|-- ConsoleApplication1.sln
|-- readme.txt
`-- ClassLibrary1
|-- ClassLibrary1.csproj
`-- ClassLibrary2
|-- ClassLibrary2.csproj
`-- ConsoleApplication1
|-- ConsoleApplication1.csproj
Uwaga / Notatka
ConsoleApplication1.sln zawiera folder bin z plikami .dll i .exe, zobacz poniższe wyniki, aby zobaczyć, co zostanie przeniesione!
Na karcie $(BuildConfiguration)
Zmienne jest ustawiona na release
.
Przykład z wieloma wzorcami dopasowania:
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)'
Przykład z warunkiem OR:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\ConsoleApplication1\bin\**\?(*.exe|*.dll)
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Przykład z warunkiem NOT:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
Contents: |
ConsoleApplication1\**\bin\**\!(*.pdb|*.config)
!ConsoleApplication1\**\ClassLibrary*\**
ConsoleApplication1\readme.txt
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Przykład ze zmiennymi w sekcji treści
- task: CopyFiles@2
inputs:
Contents: '$(Build.Repository.LocalPath)/**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Wyniki
Te pliki są kopiowane do katalogu pomostowego:
`-- ConsoleApplication1
|-- readme.txt
`-- ConsoleApplication1
`-- bin
`-- Release
| -- ClassLibrary1.dll
| -- ClassLibrary2.dll
| -- ConsoleApplication1.exe
Skopiuj wszystko z katalogu źródłowego z wyjątkiem folderu .git
Przykład z wieloma wzorcami dopasowania:
steps:
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*
!.git/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja |
Działa na | Agent, grupa wdrożeniowa |
Wymagania | Żaden |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | To zadanie jest uruchamiane przy użyciu następujących ograniczeń poleceń : ograniczone |
zmienne ustawiane | To zadanie ma uprawnienia do ustawić następujące zmienne: Ustawienie zmiennych jest wyłączone |
Wersja agenta | 2.182.1 lub nowsza |
Kategoria zadań | Użyteczność |
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja |
Działa na | Agent, grupa wdrożeniowa |
Wymagania | Żaden |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | Jakikolwiek |
zmienne ustawiane | Jakikolwiek |
Wersja agenta | 1.91.0 lub nowsza |
Kategoria zadań | Użyteczność |
Zobacz także
- Odwołanie do wzorców dopasowywania plików
- Jak mogę użyć tego zadania do publikowania artefaktów
- Dowiedz się, jak używać pełnych dzienników na potrzeby rozwiązywania problemów z .