Freigeben über


PublishSymbols@2 – Indexquellen und Veröffentlichen von Symbolen v2-Aufgabe

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

Wenn Sie Den Quellcode indizieren, können Sie ihre Symboldateien verwenden, um Ihre Anwendung auf einem anderen Computer als dem zu debuggen, den Sie zum Erstellen ihrer Anwendung verwendet haben. Sie können beispielsweise eine Anwendung debuggen, die von einem Build-Agent von einem Entwicklungscomputer erstellt wurde, der nicht über den Quellcode verfügt.

Symbolserver ermöglichen es Ihrem Debugger, die richtigen Symboldateien automatisch 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.
    #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).

Eingänge

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

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

Hinweis

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


SearchPattern - Suchmuster
string. Erforderlich. Standardwert: **/bin/**/*.pdb.

Gibt das Muster an, das zum Ermitteln der zu veröffentlichenden PDB-Dateien verwendet wird. Weitere Informationen finden Sie unter Dateiabgleichsmuster.


Manifest - Manifest-
string.

Der Pfad zu einer Datei mit weiteren Symbolclientschlüsseln, die veröffentlicht werden sollen.


IndexSources - Indexquellen
boolean. Standardwert: true.

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


PublishSymbols - Symbole veröffentlichen
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 Organisation/Sammlung (erfordert Azure Artifacts)), FileShare (Dateifreigabe).

Gibt an, wo Symbole veröffentlicht werden sollen. Auf die auf dem Azure Artifacts-Symbolserver veröffentlichten Symbole kann jeder Benutzer mit Zugriff auf die Organisation/Sammlung zugreifen. Azure DevOps Server unterstützt nur die Option File share. Anweisungen zum Veröffentlichen von Symbolen zum Debuggen zur Verwendung von Symbolserver in Azure Artifacts.


SymbolsPath - Pfad zum Veröffentlichen von Symbolen
string. Wahlfrei. Wird verwendet, wenn PublishSymbols = true && SymbolServerType = FileShare.

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

  1. Richten Sie einen Ordner auf einem Dateifreigabeserver ein, um die Symbole zu speichern. Richten Sie z. B. \fabrikam-share\symbolsein.
  2. Erteilen Sie vollzugriffsberechtigungen für das Build-Agent-Dienstkonto.

Wenn Sie dieses Argument leer lassen, werden die Symbole indiziert, aber nicht veröffentlicht. Sie können Ihre Symbole auch mit Ihren Tropfen speichern. Siehe Veröffentlichen von Buildartefakten.


CompressSymbols - Symbole komprimieren
boolean. Wahlfrei. Wird verwendet, wenn SymbolServerType = FileShare. Standardwert: false.

Komprimiert Symbole beim Veröffentlichen in der Dateifreigabe.


SymbolExpirationInDays - Symbolablauf (in Tagen)
string. Wahlfrei. Wird verwendet, wenn PublishSymbols = true && SymbolServerType = TeamServices. Standardwert: 36530.

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


IndexableFileFormats - Symboldateiformate zum Veröffentlichen von
string. Wahlfrei. Wird verwendet, wenn PublishSymbols = true && SymbolServerType = TeamServices. Zulässige Werte: Default (Der zu hochladende Standardsatz von Symbolen), Pdb (Nur pdb-basierte Symbole windows pdb und verwaltet 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 Protokollierungs-
boolean. Standardwert: true.

Gibt ausführliche Protokollierung an.


TreatNotIndexedAsWarning - Warnen, wenn nicht indiziert
boolean. Standardwert: false.

Gibt an, ob gewarnt 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 ZWERG- und ELF-Dateien unterstützt. Diese Option ist nur für Windows-Agents wichtig. Auf Nicht-Windows-Agents wird immer die Version des Symboluploadtools verwendet, das ZWERG- und ELF-Dateien unterstützt.


SymbolsMaximumWaitTime - Max. Wartezeit (Min.)
string.

Gibt die Anzahl der Minuten an, die gewartet werden sollen, bevor dieser Vorgang fehlschlägt.


SymbolsProduct - Produkt-
string.

Gibt den Produktparameter an, der symstore.exewerden soll. Der Standardwert ist $(Build.DefinitionName).


SymbolsVersion - Version
string.

Gibt den Versionsparameter für symstore.exean. Der Standardwert ist $(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 Dateifreigabe-Symbolservertyp verwendet werden. Der Standardwert ist Symbols_$(BuildConfiguration).


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.

Ausgabevariablen

Keiner.

Bemerkungen

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

Wenn Sie Den Quellcode indizieren, können Sie ihre Symboldateien verwenden, um Ihre Anwendung auf einem anderen Computer als dem zu debuggen, den Sie zum Erstellen ihrer Anwendung verwendet haben. Sie können beispielsweise eine Anwendung debuggen, die von einem Build-Agent von einem Entwicklungscomputer erstellt wurde, der nicht über den Quellcode verfügt.

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

Wichtig

Um Symbole zu löschen, die mithilfe der Indexquellen veröffentlicht wurden, & Aufgabe "Symbole veröffentlichen", müssen Sie zuerst den Build löschen, der diese Symbole generiert hat. Dazu können Aufbewahrungsrichtlinien oder manuell Löschen der Ausführungverwendet werden.

Wie funktioniert die Indizierung?

Wenn Sie die Quellen indizieren möchten, wird ein zusätzlicher Abschnitt in die PDB-Dateien eingefügt. PDB-Dateien enthalten normalerweise Verweise auf die lokalen Quelldateipfade, z. B. C:\BuildAgent_work\1\src\MyApp\Program.cs. Der in die PDB-Datei eingefügte zusätzliche Abschnitt enthält Zuordnungsanweisungen für Debugger. Die Zuordnungsinformationen zeigen an, wie das Serverelement abgerufen wird, das jedem lokalen Pfad 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 eine tragbare PDB verwenden, die aus einer .NET Core-Assembly erstellt wurde?

Nein, Aber Sie können stattdessen Quelllink- verwenden.

Wie lange bleiben Symbole erhalten?

Symbole sind dem Build zugeordnet, der in Azure-Pipelines veröffentlicht wurde, denen sie einem Build zugeordnet sind. Wenn der Build manuell oder mithilfe von Aufbewahrungsrichtlinien gelöscht wird, werden die Symbole ebenfalls gelöscht. Wenn Sie die Symbole auf unbestimmte Zeit beibehalten möchten, markieren Sie den Build als Unbestimmtebeibehalten.

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, klassischer Build
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 2.144.0 oder höher
Vorgangskategorie Bauen
Anforderung BESCHREIBUNG
Pipelinetypen YAML, klassischer Build
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion 1.95.0 oder höher
Vorgangskategorie Bauen

Siehe auch