PublishSymbols@2: Aufgabe "Indizierung von Quellen und Veröffentlichen von Symbolen v2"

Verwenden Sie diese Aufgabe, um Ihren Quellcode zu indizieren und Ihre Symbole auf einer Dateifreigabe oder einem Azure Artifacts Symbolserver zu veröffentlichen.

Die Indizierung Ihres Quellcodes ermöglicht es Ihnen, Ihre Symboldateien zum Debuggen Ihrer Anwendung auf einem anderen Rechner als dem zu verwenden, auf dem Sie Ihre Anwendung erstellt haben. Sie können beispielsweise eine Anwendung debuggen, die von einem Build-Agent erstellt wurde, von einem Entwicklungscomputer aus, der nicht über den Quellcode verfügt.

Symbolserver ermöglichen es Ihrem Debugger, automatisch die richtigen Symboldateien abzurufen, ohne Produktnamen, Buildnummern oder Paketnamen zu kennen.

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.
    #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).

Eingaben

SymbolsFolder - Pfad zum Symbolordner
string. Standardwert. $(Build.SourcesDirectory).

Gibt den Pfad zu dem Ordner an, nach dem mit Symboldateien gesucht wird. Der Standardwert lautet $(Build.SourcesDirectory). Geben Sie andernfalls einen Rootpfad an, z $(Build.BinariesDirectory)/MyProject. B. .

Hinweis

UNC-Pfade werden nicht unterstützt, wenn Sie den Azure Artifacts-Symbolserver als Servertyp auswählen.


SearchPattern - Search Muster
string. Erforderlich. Standardwert. **/bin/**/*.pdb.

Gibt das Muster an, mit dem die zu veröffentlichenden PDB-Dateien ermittelt werden. Weitere Informationen finden Sie unter Referenz zu Dateiabgleichsmustern .


IndexSources - Indexquellen
boolean. Standardwert. true.

Gibt an, ob Quellserverinformationen in die PDB-Dateien eingefügt werden sollen. Diese Option wird nur unter Windows-Agenten unterstützt.


PublishSymbols - Veröffentlichen von Symbolen
boolean. Standardwert. true.

Gibt an, ob die Symboldateien veröffentlicht werden sollen.


SymbolServerType - Symbolservertyp
string. Erforderlich, wenn PublishSymbols = true. Zulässige Werte: TeamServices (Symbolserver in dieser organization/Sammlung (erfordert Azure Artifacts)), FileShare (Dateifreigabe).

Gibt an, wo Symbole veröffentlicht werden sollen. Auf dem Azure Artifacts-Symbolserver veröffentlichte Symbole sind für jeden Benutzer mit Zugriff auf die organization/Sammlung zugänglich. Azure DevOps Server unterstützt nur die File share Option. Weitere Informationen finden Sie unter Veröffentlichen von Symbolen für das Debuggen zur Verwendung des Symbolservers in Azure Artifacts.


SymbolsPath - Pfad zum Veröffentlichen von Symbolen
string. Optional. Verwenden Sie , wenn PublishSymbols = true && SymbolServerType = FileShare.

Gibt die Dateifreigabe an, die Ihre Symbole hostet. Dieser Wert wird im Aufruf von symstore.exe add als /s Parameter verwendet. So bereiten Sie einen SymStore-Symbolspeicher vor:

  1. Richten Sie einen Ordner auf einem Dateifreigabeserver zum Speichern der Symbole ein. Richten Sie beispielsweise ein \fabrikam-share\symbols.
  2. Erteilen Sie dem Build-Agent-Dienstkonto die Berechtigung Vollzugriff.

Wenn Sie dieses Argument leer lassen, werden Ihre Symbole quellindiziert, aber nicht veröffentlicht. Sie können Ihre Symbole auch mit Ihren Drops speichern. Weitere Informationen finden Sie unter Veröffentlichen von Buildartefakten.


CompressSymbols - Komprimieren von Symbolen
boolean. Optional. Verwenden Sie , wenn SymbolServerType = FileShare. Standardwert. false.

Komprimiert Symbole beim Veröffentlichen in einer Dateifreigabe.


SymbolExpirationInDays - Symbolablauf (in Tagen)
string. Optional. Verwenden Sie , wenn PublishSymbols = true && SymbolServerType = TeamServices. Standardwert. 36530.

Gibt die Anzahl der Tage an, die Symbole beibehalten werden sollen.


IndexableFileFormats - Zu veröffentlichende Symboldateiformate
string. Optional. Verwenden Sie , wenn PublishSymbols = true && SymbolServerType = TeamServices. Zulässige Werte: Default (Der Standardsatz von hochzuladenden Symbolen), Pdb (Nur pdb-basierte Symbole windows pdb's und verwaltete portable pdb's.), SourceMap (Nur JavaScript-basierte SourceMap-Symbole (*.js.map)), All (Alle unterstützten Symbolformate). Standardwert. Default.

Gibt an, welche Debugformate auf dem Symbolserver veröffentlicht werden sollen.


DetailedLog - Ausführliche Protokollierung
boolean. Standardwert. true.

Gibt die ausführliche Protokollierung an.


TreatNotIndexedAsWarning - Warnung, wenn nicht indiziert
boolean. Standardwert. false.

Gibt an, ob eine Warnung ausgegeben werden soll, wenn Quellen für eine PDB-Datei nicht indiziert sind. Andernfalls werden die Nachrichten als normale Ausgabe protokolliert.


UseNetCoreClientTool - Verwenden des NetCore-Clienttools
boolean. Standardwert. false.

Gibt an, ob eine Version des Symboluploadtools verwendet werden soll, das DWARF- und ELF-Dateien unterstützt. Diese Option ist nur für Windows-Agents von Bedeutung. Bei Nicht-Windows-Agents wird immer die Version des Symboluploadtools verwendet, das DWARF- und ELF-Dateien unterstützt.


SymbolsMaximumWaitTime - Maximale Wartezeit (Min.)
string.

Gibt die Anzahl der Minuten an, die gewartet werden soll, bevor dieser Task fehlschlägt.


SymbolsProduct - Produkt
string.

Gibt den product-Parameter für an symstore.exe. Der Standardwert lautet $(Build.DefinitionName).


SymbolsVersion - Version
string.

Gibt den Versionsparameter für an symstore.exe. Der Standardwert lautet $(Build.BuildNumber).


SymbolsArtifactName - Artefaktname
string. Standardwert. Symbols_$(BuildConfiguration).

Gibt den Artefaktnamen an, der für das Symbolartefakt verwendet werden soll. Dies sollte nur mit dem Servertyp FileShare-Symbol verwendet werden. Der Standardwert lautet Symbols_$(BuildConfiguration).


Optionen für die Vorgangskontrolle

Alle Vorgänge verfügen zusätzlich zu ihren Eingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Keine.

Hinweise

Verwenden Sie diese Aufgabe, um Ihren Quellcode zu indizieren und Ihre Symbole auf einer Dateifreigabe oder einem Azure Artifacts Symbolserver zu veröffentlichen.

Die Indizierung Ihres Quellcodes ermöglicht es Ihnen, Ihre Symboldateien zum Debuggen Ihrer Anwendung auf einem anderen Rechner als dem zu verwenden, auf dem Sie Ihre Anwendung erstellt haben. Sie können beispielsweise eine Anwendung debuggen, die von einem Build-Agent erstellt wurde, von einem Entwicklungscomputer aus, der nicht über den Quellcode verfügt.

Symbolserver ermöglichen es Ihrem Debugger, automatisch die richtigen Symboldateien abzurufen, ohne Produktnamen, Buildnummern oder Paketnamen zu kennen.

Wichtig

Um Symbole zu löschen, die mithilfe der Aufgabe Indexquellen & Veröffentlichen von Symbolen veröffentlicht wurden, müssen Sie zuerst den Build löschen, der diese Symbole generiert hat. Dazu können Sie Aufbewahrungsrichtlinien verwenden oder die Ausführung manuell löschen.

Wie funktioniert die Indizierung?

Wenn Sie die Quellen indizieren, wird ein zusätzlicher Abschnitt in die PDB-Dateien eingefügt. PDB-Dateien enthalten normalerweise nur Verweise auf die lokalen Quelldateipfade, z. B. C:\BuildAgent_work\1\src\MyApp\Program.cs. Der zusätzliche Abschnitt, der in die PDB-Datei eingefügt wird, enthält Zuordnungsanweisungen für Debugger. Die Zuordnungsinformationen geben an, wie das Serverelement abgerufen wird, das den einzelnen lokalen Pfaden entspricht.

Der Visual Studio-Debugger verwendet die Zuordnungsinformationen, um die Quelldatei vom Server abzurufen. Ein tatsächlicher Befehl zum Abrufen der Quelldatei ist in den Zuordnungsinformationen enthalten. Beispiel:

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

Kann ich die Quellindizierung für ein portables PDB verwenden, das aus einer .NET Core-Assembly erstellt wurde?

Nein, aber Sie können stattdessen Source Link verwenden.

Wie lange werden Symbole aufbewahrt?

Symbole sind dem Build zugeordnet, der in Azure Pipelines veröffentlicht wurde. Sie sind einem Build zugeordnet. Wenn der Build entweder manuell oder mithilfe von Aufbewahrungsrichtlinien gelöscht wird, werden die Symbole ebenfalls gelöscht. Wenn Sie die Symbole unbegrenzt beibehalten möchten, markieren Sie den Build als Unbegrenzt beibehalten.

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, klassischer Build
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version 2.144.0 oder höher
Aufgabenkategorie Entwickeln
Anforderung BESCHREIBUNG
Pipelinetypen YAML, klassischer Build
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version 1.95.0 oder höher
Aufgabenkategorie Entwickeln

Weitere Informationen