Condividi tramite


PublishSymbols@2 - Indicizzare le origini e pubblicare simboli v2 attività

Usare questa attività per indicizzare il codice sorgente e pubblicare i simboli in una condivisione file o in un server di simboli di Azure Artifacts.

L'indicizzazione del codice sorgente consente di usare i file di simboli per eseguire il debug dell'applicazione in un computer diverso da quello usato per compilare l'applicazione. Ad esempio, è possibile eseguire il debug di un'applicazione compilata da un agente di compilazione da un computer di sviluppo che non dispone del codice sorgente.

I server di simboli consentono al debugger di recuperare automaticamente i file di simboli corretti senza conoscere i nomi dei prodotti, i numeri di compilazione o i nomi dei pacchetti.

Sintassi

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

Ingressi dati

SymbolsFolder - percorso della cartella dei simboli
string. Valore predefinito: $(Build.SourcesDirectory)

Specifica il percorso della cartella cercata con i file di simboli. Il valore predefinito è $(Build.SourcesDirectory). In caso contrario, specificare un percorso rooted, ad esempio $(Build.BinariesDirectory)/MyProject.

Nota

I percorsi UNC non sono supportati se si seleziona il server dei simboli di Azure Artifacts come tipo di server.


SearchPattern - criteri di ricerca
string. Obbligatorio. Valore predefinito: **/bin/**/*.pdb

Specifica il modello usato per individuare i file PDB da pubblicare. Per altre informazioni, vedere Informazioni di riferimento sui modelli di corrispondenza file.


Manifest - manifesto
string.

Percorso di un file contenente più chiavi client di simboli da pubblicare.


IndexSources - origini dell'indice
boolean. Valore predefinito: true

Specifica se inserire informazioni sul server di origine nei file PDB. Questa opzione è supportata solo per gli agenti Windows.


PublishSymbols - Pubblica simboli
boolean. Valore predefinito: true

Specifica se pubblicare i file di simboli.


SymbolServerType - tipo di server simbolo
string. Obbligatorio quando PublishSymbols = true. Valori consentiti: TeamServices (server simboli in questa organizzazione/raccolta (richiede Azure Artifacts)), FileShare (condivisione file).

Specifica dove pubblicare i simboli. I simboli pubblicati nel server dei simboli di Azure Artifacts sono accessibili da qualsiasi utente con accesso all'organizzazione o alla raccolta. Azure DevOps Server supporta solo l'opzione File share. Vedere le istruzioni per Pubblicare simboli per il debug di per l'uso del server dei simboli in Azure Artifacts.


SymbolsPath - Percorso per pubblicare simboli
string. Opzionale. Usare quando PublishSymbols = true && SymbolServerType = FileShare.

Specifica la condivisione file che ospita i simboli. Questo valore verrà usato nella chiamata a symstore.exe add come parametro /s. Per preparare l'archivio simboli symstore:

  1. Configurare una cartella in un server di condivisione file per archiviare i simboli. Ad esempio, configurare \fabrikam-share\symbols.
  2. Concedere l'autorizzazione di controllo completo all'account del servizio dell'agente di compilazione .

Se si lascia vuoto questo argomento, i simboli verranno indicizzati ma non pubblicati. È anche possibile archiviare i simboli con le gocce. vedere Pubblicare elementi di compilazione.


CompressSymbols - Comprimi simboli
boolean. Opzionale. Usare quando SymbolServerType = FileShare. Valore predefinito: false

Comprime i simboli durante la pubblicazione nella condivisione file.


scadenza simboli SymbolExpirationInDays - (in giorni)
string. Opzionale. Usare quando PublishSymbols = true && SymbolServerType = TeamServices. Valore predefinito: 36530

Specifica il numero di giorni di conservazione dei simboli.


IndexableFileFormats - formati di file symbol per pubblicare
string. Opzionale. Usare quando PublishSymbols = true && SymbolServerType = TeamServices. Valori consentiti: Default (set predefinito di simboli da caricare), Pdb (solo simboli basati su Pdb di Windows e pdb gestiti da Pdb), SourceMap (solo simboli SourceMap basati su JavaScript (*.js.map)), All (Tutti i formati di simboli supportati). Valore predefinito: Default

Specifica i formati di debug da pubblicare nel server dei simboli.


DetailedLog - di registrazione dettagliata
boolean. Valore predefinito: true

Specifica la registrazione dettagliata.


TreatNotIndexedAsWarning - Avvisa se non è indicizzato
boolean. Valore predefinito: false

Specifica se avvisare se le origini non sono indicizzate per un file PDB. In caso contrario, i messaggi vengono registrati come output normale.


UseNetCoreClientTool - Usare lo strumento client NetCore
boolean. Valore predefinito: false

Specifica se utilizzare una versione dello strumento di caricamento dei simboli che supporta i file NANO ed ELF. Questa opzione è importante solo per gli agenti Windows. Negli agenti non Windows verrà sempre usata la versione dello strumento di caricamento dei simboli che supporta i file NANO ed ELF.


SymbolsMaximumWaitTime - tempo di attesa massimo (min)
string.

Specifica il numero di minuti di attesa prima dell'esito negativo di questa attività.


SymbolsProduct - prodotto
string.

Specifica il parametro product da symstore.exe. Il valore predefinito è $(Build.DefinitionName).


SymbolsVersion - versione
string.

Specifica il parametro version da symstore.exe. Il valore predefinito è $(Build.BuildNumber).


SymbolsArtifactName - nome artefatto
string. Valore predefinito: Symbols_$(BuildConfiguration)

Specifica il nome dell'artefatto da utilizzare per l'artefatto dei simboli. Questa operazione deve essere utilizzata solo con il tipo di server di simboli FileShare. Il valore predefinito è Symbols_$(BuildConfiguration).


Opzioni di controllo delle attività

Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni:

Usare questa attività per indicizzare il codice sorgente e pubblicare i simboli in una condivisione file o in un server di simboli di Azure Artifacts.

L'indicizzazione del codice sorgente consente di usare i file di simboli per eseguire il debug dell'applicazione in un computer diverso da quello usato per compilare l'applicazione. Ad esempio, è possibile eseguire il debug di un'applicazione compilata da un agente di compilazione da un computer di sviluppo che non dispone del codice sorgente.

I server di simboli consentono al debugger di recuperare automaticamente i file di simboli corretti senza conoscere i nomi dei prodotti, i numeri di compilazione o i nomi dei pacchetti.

Importante

Per eliminare i simboli pubblicati usando l 'attività & Pubblica simboli & origini indice, è prima necessario eliminare la compilazione che ha generato tali simboli. A tale scopo, è possibile usare criteri di conservazione o manualmente eliminare l'esecuzione.

Come funziona l'indicizzazione?

Scegliendo di indicizzare le origini, nei file PDB verrà inserita una sezione aggiuntiva. I file PDB in genere contengono riferimenti solo ai percorsi del file di origine locale, ad esempio C:\BuildAgent_work\1\src\MyApp\Program.cs. La sezione aggiuntiva inserita nel file PDB contiene istruzioni di mapping per i debugger. Le informazioni di mapping indicano come recuperare l'elemento del server corrispondente a ogni percorso locale.

Il debugger di Visual Studio userà le informazioni di mapping per recuperare il file di origine dal server. Un comando effettivo per recuperare il file di origine è incluso nelle informazioni di mapping. Esempio:

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

È possibile usare l'indicizzazione di origine in un PDB portatile creato da un assembly .NET Core?

No, ma è possibile usare collegamento di origine.

Quanto tempo vengono conservati i simboli?

I simboli sono associati alla compilazione pubblicata in Azure Pipelines associata a una compilazione. Quando la compilazione viene eliminata manualmente o usando i criteri di conservazione, vengono eliminati anche i simboli. Se si desidera mantenere i simboli per un periodo illimitato, contrassegnare la compilazione come Mantieni illimitata.

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica
Viene eseguito in Agente, DeploymentGroup
richieste Nessuno
funzionalità di Questa attività non soddisfa alcuna richiesta di attività successive nel processo.
restrizioni dei comandi Qualunque
variabili impostabili Qualunque
Versione dell'agente 2.144.0 o versione successiva
Categoria attività Costruire
Requisito Descrizione
Tipi di pipeline YAML, build classica
Viene eseguito in Agente, DeploymentGroup
richieste Nessuno
funzionalità di Questa attività non soddisfa alcuna richiesta di attività successive nel processo.
restrizioni dei comandi Qualunque
variabili impostabili Qualunque
Versione dell'agente 1.95.0 o versione successiva
Categoria attività Costruire

Vedere anche