Condividi tramite


PublishSymbols@2 - Origini di indice e pubblicazione di 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 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.
    #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 - Percorso della cartella simboli
string. Valore predefinito: $(Build.SourcesDirectory).

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

Nota

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


SearchPattern - modello Search
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 dei file .


IndexSources - Origini di indice
boolean. Valore predefinito: true.

Specifica se inserire le informazioni del server di origine nei file PDB. Questa opzione è supportata solo sugli agenti Windows.


PublishSymbols - Pubblicare 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 simboli degli artefatti di Azure sono accessibili da qualsiasi utente con accesso all'organizzazione/raccolta. Azure DevOps Server supporta solo l'opzioneFile share. Vedere le istruzioni per pubblicare i simboli per il debug per l'uso del server simboli in Artefatti di Azure.


SymbolsPath - Percorso per pubblicare simboli
string. facoltativo. 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 /s parametro. Per preparare l'archivio simboli di SymStore:

  1. Configurare la cartella di 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 all'origine ma non pubblicati. È anche possibile archiviare i simboli con le gocce. Vedere Pubblica artefatti di compilazione.


CompressSymbols - Comprimere i simboli
boolean. facoltativo. Usare quando SymbolServerType = FileShare. Valore predefinito: false.

Comprime i simboli durante la pubblicazione nella condivisione file.


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

Specifica il numero di giorni che devono essere conservati i simboli.


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

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


DetailedLog - 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 vengono indicizzate per un file PDB. In caso contrario, i messaggi vengono registrati come output normali.


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

Specifica se usare una versione dello strumento di caricamento dei simboli che supporta i file NANO e 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 e ELF.


SymbolsMaximumWaitTime - Tempo di attesa massimo (min)
string.

Specifica il numero di minuti da attendere prima di eseguire l'operazione.


SymbolsProduct - Prodotto
string.

Specifica il parametro del prodotto su symstore.exe. Il valore predefinito è $(Build.DefinitionName).


SymbolsVersion - Versione
string.

Specifica il parametro di versione in symstore.exe. Il valore predefinito è $(Build.BuildNumber).


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

Specifica il nome dell'artefatto da usare per l'artefatto dei simboli. Questa operazione deve essere usata solo con il tipo di server 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 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à Origini indice & Pubblica simboli , è necessario prima eliminare la compilazione che ha generato tali simboli. Questa operazione può essere eseguita usando i criteri di conservazione o eliminando manualmente l'esecuzione.

Come funziona l'indicizzazione?

Se si sceglie di indicizzare le origini, nei file PDB verrà inserita una sezione aggiuntiva. I file PDB in genere contengono riferimenti solo ai percorsi dei file di origine locale, ad esempio C:\BuildAgent_work\1\src\MyApp\Program.cs. La sezione aggiuntiva inserita nel file PDB contiene le 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 Source Link.

Per 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 conservare i simboli per un periodo illimitato, contrassegnare la compilazione come Mantieni per un periodo illimitato.

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica
Viene eseguito in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 2.144.0 o versione successiva
Categoria attività Compilazione
Requisito Descrizione
Tipi di pipeline YAML, build classica
Viene eseguito in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 1.95.0 o versione successiva
Categoria attività Compilazione

Vedi anche