Dela via


PublishSymbols@2 – Indexkällor och publicera symboler v2-uppgift

Använd den här uppgiften för att indexera källkoden och publicera dina symboler till en filresurs eller Azure Artifacts-symbolserver.

Genom att indexera källkoden kan du använda symbolfilerna för att felsöka ditt program på en annan dator än den som du använde för att skapa ditt program. Du kan till exempel felsöka ett program som skapats av en byggagent från en utvecklingsdator som inte har källkoden.

Med symbolservrar kan felsökaren automatiskt hämta rätt symbolfiler utan att känna till produktnamn, byggnummer eller paketnamn.

Syntax

# 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.
    #Manifest: # string. Manifest. 
    #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.
    #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).

Ingångar

SymbolsFolder - sökväg till
string. Standardvärde: $(Build.SourcesDirectory).

Anger sökvägen till den mapp som söks efter med symbolfiler. Standardvärdet är $(Build.SourcesDirectory). Annars anger du en rotad sökväg, till exempel $(Build.BinariesDirectory)/MyProject.

Anmärkning

UNC-sökvägar stöds inte om du väljer Azure Artifacts-symbolservern som servertyp.


SearchPattern - Sökmönster
string. Obligatoriskt. Standardvärde: **/bin/**/*.pdb.

Anger det mönster som används för att identifiera PDB-filerna som ska publiceras. Mer information finns i referensen för filmatchningsmönster.


Manifest - Manifestera
string.

Sökvägen till en fil som innehåller fler symbolklientnycklar att publicera.


IndexSources - indexkällor
boolean. Standardvärde: true.

Anger om källserverinformation ska matas in i PDB-filerna. Det här alternativet stöds endast på Windows-agenter.


PublishSymbols - Publicera symboler
boolean. Standardvärde: true.

Anger om symbolfilerna ska publiceras.


SymbolServerType - symbolservertyp
string. Krävs när PublishSymbols = true. Tillåtna värden: TeamServices (symbolserver i den här organisationen/samlingen (kräver Azure Artifacts)), FileShare (filresurs).

Anger var du vill publicera symboler. Symboler som publiceras på Azure Artifacts-symbolservern är tillgängliga för alla användare med åtkomst till organisationen/samlingen. Azure DevOps Server stöder endast alternativet File share. Se instruktioner för att Publicera symboler för felsökning av för att använda Symbolserver i Azure Artifacts.


SymbolsPath - sökväg för att publicera symboler
string. Valfritt. Använd när PublishSymbols = true && SymbolServerType = FileShare.

Anger den filresurs som är värd för dina symboler. Det här värdet används i anropet till symstore.exe add som parametern /s. Så här förbereder du SymStore-symbolarkivet:

  1. Konfigurera en mapp på en fildelningsserver för att lagra symbolerna. Du kan till exempel konfigurera \fabrikam-share\symbols.
  2. Ge fullständig behörighet till build-agentens tjänstkonto.

Om du lämnar det här argumentet tomt kommer dina symboler att vara källindexerade men inte publicerade. Du kan också lagra dina symboler med dina droppar. Se Publicera byggartefakter.


CompressSymbols - Komprimera symboler
boolean. Valfritt. Använd när SymbolServerType = FileShare. Standardvärde: false.

Komprimerar symboler vid publicering till filresurs.


SymbolExpirationInDays - symbolens giltighetstid (i dagar)
string. Valfritt. Använd när PublishSymbols = true && SymbolServerType = TeamServices. Standardvärde: 36530.

Anger hur många dagar som symboler ska behållas.


IndexableFileFormats - symbolfilformat för publicering av
string. Valfritt. Använd när PublishSymbols = true && SymbolServerType = TeamServices. Tillåtna värden: Default (standarduppsättningen med symboler som ska laddas upp), Pdb (Endast Pdb-baserade symboler Windows-pdb och hanterade bärbara pdb-datorer).), SourceMap (Endast JavaScript-baserade SourceMap-symboler (*.js.map)), All (Alla symbolformat som stöds). Standardvärde: Default.

Anger vilka felsökningsformat som ska publiceras på symbolservern.


DetailedLog - utförlig loggning
boolean. Standardvärde: true.

Anger utförlig loggning.


TreatNotIndexedAsWarning - Varna om den inte är indexerad
boolean. Standardvärde: false.

Anger om du vill varna om källor inte indexeras för en PDB-fil. Annars loggas meddelandena som normala utdata.


UseNetCoreClientTool - Använd NetCore-klientverktyget
boolean. Standardvärde: false.

Anger om du vill använda en version av symboluppladdningsverktyget som stöder DWARF- och ELF-filer. Det här alternativet är bara viktigt för Windows-agenter. På icke-Windows-agenter används alltid den version av symboluppladdningsverktyget som stöder DWARF- och ELF-filer.


SymbolsMaximumWaitTime - Maximal väntetid (min)
string.

Anger antalet minuter att vänta innan den här uppgiften misslyckas.


SymbolsProduct - Produkt
string.

Anger produktparametern för att symstore.exe. Standardvärdet är $(Build.DefinitionName).


SymbolsVersion - version
string.

Anger versionsparametern till symstore.exe. Standardvärdet är $(Build.BuildNumber).


SymbolsArtifactName - Artefaktnamn
string. Standardvärde: Symbols_$(BuildConfiguration).

Anger artefaktnamnet som ska användas för symbolartefakten. Detta bör endast användas med servertypen FileShare-symbolserver. Standardvärdet är Symbols_$(BuildConfiguration).


Kontrollalternativ för aktivitet

Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Ingen.

Anmärkningar

Använd den här uppgiften för att indexera källkoden och publicera dina symboler till en filresurs eller Azure Artifacts-symbolserver.

Genom att indexera källkoden kan du använda symbolfilerna för att felsöka ditt program på en annan dator än den som du använde för att skapa ditt program. Du kan till exempel felsöka ett program som skapats av en byggagent från en utvecklingsdator som inte har källkoden.

Med symbolservrar kan felsökaren automatiskt hämta rätt symbolfiler utan att känna till produktnamn, byggnummer eller paketnamn.

Viktigt!

Om du vill ta bort symboler som publicerats med hjälp av indexkällor & publicera symboler uppgift måste du först ta bort den version som genererade dessa symboler. Detta kan åstadkommas med hjälp av kvarhållningsprinciper eller genom att manuellt ta bort körningen.

Hur fungerar indexering?

Genom att välja att indexera källorna matas ett extra avsnitt in i PDB-filerna. PDB-filer innehåller normalt endast referenser till sökvägarna för lokala källfiler, t.ex. C:\BuildAgent_work\1\src\MyApp\Program.cs. Det extra avsnittet som matas in i PDB-filen innehåller mappningsinstruktioner för felsökningsprogram. Mappningsinformationen anger hur du hämtar serverobjektet som motsvarar varje lokal sökväg.

Visual Studio-felsökningsprogrammet använder mappningsinformationen för att hämta källfilen från servern. Ett faktiskt kommando för att hämta källfilen ingår i mappningsinformationen. Exempel:

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

Kan jag använda källindexering på en bärbar PDB som skapats från en .NET Core-sammansättning?

Nej, men du kan använda Source Link i stället.

Hur länge behålls symboler?

Symboler är associerade med den version som publicerats i Azure Pipelines och som de är associerade med en version. När bygget tas bort manuellt eller med hjälp av kvarhållningsprinciper tas även symbolerna bort. Om du vill behålla symbolerna på obestämd tid markerar du bygget som Behåll på obestämd tid.

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version
Körs på Agent, DeploymentGroup
kräver Ingen
funktioner Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Vilken som helst
variabler som kan Vilken som helst
Agentversion 2.144.0 eller senare
Aktivitetskategori Skapa
Krav Beskrivning
Pipelinetyper YAML, klassisk version
Körs på Agent, DeploymentGroup
kräver Ingen
funktioner Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Vilken som helst
variabler som kan Vilken som helst
Agentversion 1.95.0 eller senare
Aktivitetskategori Skapa

Se även