Bagikan melalui


PublishSymbols@2 - Mengindeks sumber dan menerbitkan tugas simbol v2

Gunakan tugas ini untuk mengindeks kode sumber Anda dan menerbitkan simbol Anda ke berbagi file atau server simbol Azure Artifacts.

Mengindeks kode sumber memungkinkan Anda menggunakan file simbol untuk men-debug aplikasi Anda di komputer selain yang Anda gunakan untuk membangun aplikasi Anda. Misalnya, Anda dapat men-debug aplikasi yang dibangun oleh agen build dari komputer pengembang yang tidak memiliki kode sumber.

Server simbol memungkinkan debugger Anda untuk secara otomatis mengambil file simbol yang benar tanpa mengetahui nama produk, nomor build, atau nama paket.

Sintaks

# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts symbol server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
    #SymbolExpirationInDays: '36530' # string. Optional. Use when PublishSymbols = true && SymbolServerType = TeamServices. Symbol Expiration (in days). Default: 36530.
  # Advanced
    #IndexableFileFormats: 'Default' # 'Default' | 'Pdb' | 'SourceMap' | 'All'. Optional. Use when PublishSymbols = true && SymbolServerType = TeamServices. Symbol file formats to publish. Default: Default.
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #UseNetCoreClientTool: false # boolean. Use NetCore client tool. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts symbol server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
  # Advanced
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts Symbol Server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
  # Advanced
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).

Input

SymbolsFolder - Jalur ke folder simbol
string. Nilai default: $(Build.SourcesDirectory).

Menentukan jalur ke folder yang dicari dengan file simbol. Default adalah $(Build.SourcesDirectory). Jika tidak, tentukan jalur berakar, seperti $(Build.BinariesDirectory)/MyProject.

Catatan

Jalur UNC tidak didukung jika Anda memilih server simbol Azure Artifacts sebagai jenis server.


SearchPattern - pola Search
string. Wajib diisi. Nilai default: **/bin/**/*.pdb.

Menentukan pola yang digunakan untuk menemukan file PDB untuk diterbitkan. Lihat Referensi pola pencocokan file untuk informasi selengkapnya.


IndexSources - Sumber indeks
boolean. Nilai default: true.

Menentukan apakah akan menyuntikkan informasi server sumber ke dalam file PDB. Opsi ini hanya didukung pada agen Windows.


PublishSymbols - Terbitkan simbol
boolean. Nilai default: true.

Menentukan apakah akan menerbitkan file simbol.


SymbolServerType - Jenis server simbol
string. Diperlukan saat PublishSymbols = true. Nilai yang diizinkan: TeamServices (Server Simbol dalam organisasi/koleksi ini (memerlukan Artefak Azure)), FileShare (Berbagi file).

Menentukan tempat untuk menerbitkan simbol. Simbol yang diterbitkan ke server simbol Azure Artifacts dapat diakses oleh pengguna mana pun dengan akses ke organisasi/koleksi. Azure DevOps Server hanya mendukung File share opsi . Lihat instruksi untuk Menerbitkan simbol untuk penelusuran kesalahan untuk menggunakan Server Simbol di Artefak Azure.


SymbolsPath - Jalur untuk menerbitkan simbol
string. Pilihan. Gunakan saat PublishSymbols = true && SymbolServerType = FileShare.

Menentukan berbagi file yang menghosting simbol Anda. Nilai ini akan digunakan dalam panggilan ke symstore.exe add sebagai /s parameter . Untuk menyiapkan penyimpanan simbol SymStore Anda:

  1. Siapkan folder di server berbagi file untuk menyimpan simbol. Misalnya, siapkan \fabrikam-share\symbols.
  2. Berikan izin kontrol penuh ke akun layanan agen build.

Jika Anda membiarkan argumen ini kosong, simbol Anda akan diindeks sumber tetapi tidak diterbitkan. Anda juga dapat menyimpan simbol dengan tetesan Anda. Lihat Menerbitkan Artefak Build.


CompressSymbols - Memadatkan simbol
boolean. Pilihan. Gunakan saat SymbolServerType = FileShare. Nilai default: false.

Memadatkan simbol saat menerbitkan ke berbagi file.


SymbolExpirationInDays - Kedaluwarsa Simbol (dalam hari)
string. Pilihan. Gunakan saat PublishSymbols = true && SymbolServerType = TeamServices. Nilai default: 36530.

Menentukan jumlah hari simbol harus dipertahankan.


IndexableFileFormats - Format file simbol untuk diterbitkan
string. Opsional. Gunakan saat PublishSymbols = true && SymbolServerType = TeamServices. Nilai yang diizinkan: Default (Kumpulan default simbol untuk diunggah), Pdb (Hanya simbol berbasis Pdb Windows pdb dan pdb Portabel terkelola, SourceMap (Hanya simbol SourceMap berbasis JavaScript (*.js.map)), All (Semua format simbol yang didukung). Nilai default: Default.

Menentukan format debug mana yang akan diterbitkan ke server simbol.


DetailedLog - Pengelogan verbose
boolean. Nilai default: true.

Menentukan pengelogan verbose.


TreatNotIndexedAsWarning - Peringatkan jika tidak diindeks
boolean. Nilai default: false.

Menentukan apakah akan memperingatkan apakah sumber tidak diindeks untuk file PDB. Jika tidak, pesan dicatat sebagai output normal.


UseNetCoreClientTool - Menggunakan alat klien NetCore
boolean. Nilai default: false.

Menentukan apakah akan menggunakan versi alat pengunggahan simbol yang mendukung file DWARF dan ELF. Opsi ini hanya penting pada agen Windows. Pada agen non-Windows, versi alat pengunggahan simbol yang mendukung file DWARF dan ELF akan selalu digunakan.


SymbolsMaximumWaitTime - Waktu tunggu maksimum (min)
string.

Menentukan jumlah menit untuk menunggu sebelum gagal dalam tugas ini.


SymbolsProduct - Produk
string.

Menentukan parameter produk ke symstore.exe. Default adalah $(Build.DefinitionName).


SymbolsVersion - Versi
string.

Menentukan parameter versi ke symstore.exe. Default adalah $(Build.BuildNumber).


SymbolsArtifactName - Nama artefak
string. Nilai default: Symbols_$(BuildConfiguration).

Menentukan nama artefak yang akan digunakan untuk artefak simbol. Ini hanya boleh digunakan dengan jenis server simbol FileShare. Default adalah Symbols_$(BuildConfiguration).


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugas mereka. Untuk informasi selengkapnya, lihat Opsi kontrol dan properti tugas umum.

Variabel output

Tidak ada.

Keterangan

Gunakan tugas ini untuk mengindeks kode sumber Anda dan menerbitkan simbol Anda ke berbagi file atau server simbol Azure Artifacts.

Mengindeks kode sumber memungkinkan Anda menggunakan file simbol untuk men-debug aplikasi Anda di komputer selain yang Anda gunakan untuk membangun aplikasi Anda. Misalnya, Anda dapat men-debug aplikasi yang dibangun oleh agen build dari komputer pengembang yang tidak memiliki kode sumber.

Server simbol memungkinkan debugger Anda untuk secara otomatis mengambil file simbol yang benar tanpa mengetahui nama produk, nomor build, atau nama paket.

Penting

Untuk menghapus simbol yang diterbitkan menggunakan tugas Sumber Indeks & Terbitkan Simbol , Anda harus terlebih dahulu menghapus build yang menghasilkan simbol tersebut. Ini dapat dicapai dengan menggunakan kebijakan retensi atau dengan menghapus eksekusi secara manual.

Bagaimana cara kerja pengindeksan?

Dengan memilih untuk mengindeks sumber, bagian tambahan akan disuntikkan ke dalam file PDB. File PDB biasanya berisi referensi ke jalur file sumber lokal saja Misalnya: C:\BuildAgent_work\1\src\MyApp\Program.cs. Bagian tambahan yang disuntikkan ke dalam file PDB berisi instruksi pemetaan untuk debugger. Informasi pemetaan menunjukkan cara mengambil item server yang sesuai dengan setiap jalur lokal.

Debugger Visual Studio akan menggunakan informasi pemetaan untuk mengambil file sumber dari server. Perintah aktual untuk mengambil file sumber disertakan dalam informasi pemetaan. Contoh:

tf.exe git view /collection:http://SERVER:8080/tfs/DefaultCollection /teamproject:"93fc2e4d-0f0f-4e40-9825-01326191395d" /repository:"647ed0e6-43d2-4e3d-b8bf-2885476e9c44" /commitId:3a9910862e22f442cd56ff280b43dd544d1ee8c9 /path:"/MyApp/Program.cs" /output:"C:\Users\username\AppData\Local\SOURCE~1\TFS_COMMIT\3a991086\MyApp\Program.cs" /applyfilters

Dapatkah saya menggunakan pengindeksan sumber pada PDB portabel yang dibuat dari rakitan .NET Core?

Tidak, tetapi Anda dapat menggunakan Tautan Sumber sebagai gantinya.

Berapa lama Simbol dipertahankan?

Simbol dikaitkan dengan build yang diterbitkan ke Azure Pipelines yang terkait dengan build. Saat build dihapus baik secara manual atau menggunakan kebijakan retensi, simbol juga akan dihapus. Jika Anda ingin mempertahankan simbol tanpa batas waktu, tandai build sebagai Pertahankan tanpa batas waktu.

Persyaratan

Persyaratan Deskripsi
Jenis alur YAML, Build klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak ada
Kemampuan Tugas ini tidak memenuhi tuntutan untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen 2.144.0 atau lebih tinggi
Kategori tugas Build
Persyaratan Deskripsi
Jenis alur YAML, Build klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak ada
Kemampuan Tugas ini tidak memenuhi tuntutan untuk tugas berikutnya dalam pekerjaan.
Pembatasan perintah Apa pun
Variabel yang dapat diatur Apa pun
Versi agen 1.95.0 atau lebih tinggi
Kategori tugas Build

Lihat juga