Partilhar via


PublishSymbols@2 - Indexar fontes e publicar símbolos v2 tarefa

Use esta tarefa para indexar seu código-fonte e publicar seus símbolos em um compartilhamento de arquivos ou servidor de símbolos do Azure Artifacts.

A indexação do código-fonte permite que você use seus arquivos de símbolo para depurar seu aplicativo em uma máquina diferente daquela que você usou para criar seu aplicativo. Por exemplo, você pode depurar um aplicativo criado por um agente de compilação de uma máquina de desenvolvimento que não tenha o código-fonte.

Os servidores de símbolos permitem que o depurador recupere automaticamente os arquivos de símbolos corretos sem saber nomes de produtos, números de compilação ou nomes de pacotes.

Sintaxe

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

Insumos

SymbolsFolder - Caminho para a pasta de símbolos
string. Valor padrão: $(Build.SourcesDirectory).

Especifica o caminho para a pasta que é pesquisada com arquivos de símbolo. A predefinição é $(Build.SourcesDirectory). Caso contrário, especifique um caminho enraizado, como $(Build.BinariesDirectory)/MyProject.

Observação

Não há suporte para caminhos UNC se você selecionar o servidor de símbolos de Artefatos do Azure como o tipo de servidor.


SearchPattern - Padrão de pesquisa
string. Obrigatório. Valor padrão: **/bin/**/*.pdb.

Especifica o padrão usado para descobrir os arquivos PDB a serem publicados. Consulte de referência de padrões de correspondência de arquivos para obter mais informações.


Manifest - Manifesto
string.

O caminho para um arquivo que contém mais chaves de cliente de símbolo para publicar.


IndexSources - Fontes do índice
boolean. Valor padrão: true.

Especifica se as informações do servidor de origem devem ser injetadas nos arquivos PDB. Esta opção só é suportada em agentes Windows.


PublishSymbols - Publicar símbolos
boolean. Valor padrão: true.

Especifica se os arquivos de símbolo devem ser publicados.


SymbolServerType - Tipo de servidor Symbol
string. Necessário quando PublishSymbols = true. Valores permitidos: TeamServices (Servidor de Símbolos nesta organização/coleção (requer Artefatos do Azure)), FileShare (Compartilhamento de arquivos).

Especifica onde publicar símbolos. Os símbolos publicados no servidor de símbolos de Artefatos do Azure são acessíveis por qualquer usuário com acesso à organização/coleção. O Azure DevOps Server suporta apenas a opção File share. Consulte as instruções para símbolos de publicação para depuração para usar o Servidor de Símbolos nos Artefatos do Azure.


SymbolsPath - Caminho para publicar símbolos
string. Opcional. Use quando PublishSymbols = true && SymbolServerType = FileShare.

Especifica o compartilhamento de arquivos que hospeda seus símbolos. Esse valor será usado na chamada para symstore.exe add como o parâmetro /s. Para preparar a sua loja de símbolos SymStore:

  1. Configure uma pasta em um servidor de compartilhamento de arquivos para armazenar os símbolos. Por exemplo, configure \fabrikam-share\symbols.
  2. Conceda permissão de controle total à conta de serviço do agente de compilação .

Se você deixar esse argumento em branco, seus símbolos serão indexados na fonte, mas não publicados. Você também pode armazenar seus símbolos com suas gotas. Consulte Publicar artefatos de compilação.


CompressSymbols - Comprimir símbolos
boolean. Opcional. Use quando SymbolServerType = FileShare. Valor padrão: false.

Compacta símbolos ao publicar no compartilhamento de arquivos.


SymbolExpirationInDays - Expiração do símbolo (em dias)
string. Opcional. Use quando PublishSymbols = true && SymbolServerType = TeamServices. Valor padrão: 36530.

Especifica o número de dias em que os símbolos devem ser mantidos.


IndexableFileFormats - Formatos de arquivo de símbolo para publicar
string. Opcional. Use quando PublishSymbols = true && SymbolServerType = TeamServices. Valores permitidos: Default (O conjunto padrão de símbolos para carregar), Pdb (Somente símbolos baseados em Pdb do Windows pdb e pdbs portáteis gerenciados.), SourceMap (Somente símbolos SourceMap baseados em JavaScript (*.js.map)), All (Todos os formatos de símbolos suportados). Valor padrão: Default.

Especifica quais formatos de depuração devem ser publicados no servidor de símbolos.


DetailedLog - de registro detalhado
boolean. Valor padrão: true.

Especifica o registro detalhado.


TreatNotIndexedAsWarning - Avisar se não estiver indexado
boolean. Valor padrão: false.

Especifica se as fontes não estão indexadas para um arquivo PDB devem ser avisadas. Caso contrário, as mensagens são registradas como saída normal.


UseNetCoreClientTool - Usar a ferramenta de cliente NetCore
boolean. Valor padrão: false.

Especifica se deve ser usada uma versão da ferramenta de carregamento de símbolos que ofereça suporte a arquivos DWARF e ELF. Esta opção só é importante para agentes Windows. Em agentes que não sejam Windows, a versão da ferramenta de upload de símbolos que suporta arquivos DWARF e ELF sempre será usada.


SymbolsMaximumWaitTime - Tempo de espera máximo (min)
string.

Especifica o número de minutos a aguardar antes de falhar esta tarefa.


SymbolsProduct - Produto
string.

Especifica o parâmetro do produto a ser symstore.exe. A predefinição é $(Build.DefinitionName).


SymbolsVersion - Versão
string.

Especifica o parâmetro version a ser symstore.exe. A predefinição é $(Build.BuildNumber).


SymbolsArtifactName - Nome do artefato
string. Valor padrão: Symbols_$(BuildConfiguration).

Especifica o nome do artefato a ser usado para o artefato de símbolos. Isso só deve ser usado com o tipo de servidor de símbolo FileShare. A predefinição é Symbols_$(BuildConfiguration).


Opções de controlo de tarefas

Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Use esta tarefa para indexar seu código-fonte e publicar seus símbolos em um compartilhamento de arquivos ou servidor de símbolos do Azure Artifacts.

A indexação do código-fonte permite que você use seus arquivos de símbolo para depurar seu aplicativo em uma máquina diferente daquela que você usou para criar seu aplicativo. Por exemplo, você pode depurar um aplicativo criado por um agente de compilação de uma máquina de desenvolvimento que não tenha o código-fonte.

Os servidores de símbolos permitem que o depurador recupere automaticamente os arquivos de símbolos corretos sem saber nomes de produtos, números de compilação ou nomes de pacotes.

Importante

Para excluir símbolos que foram publicados usando a tarefa Fontes de índice & Publicar símbolos, você deve primeiro excluir a compilação que gerou esses símbolos. Isso pode ser feito usando políticas de retenção ou excluindo manualmente ode execução.

Como funciona a indexação?

Ao optar por indexar as fontes, será injetada uma secção adicional nos ficheiros APO. Os arquivos PDB normalmente contêm referências apenas aos caminhos do arquivo de origem local, por exemplo: C:\BuildAgent_work\1\src\MyApp\Program.cs. A seção extra injetada no arquivo PDB contém instruções de mapeamento para depuradores. As informações de mapeamento indicam como recuperar o item de servidor correspondente a cada caminho local.

O depurador do Visual Studio usará as informações de mapeamento para recuperar o arquivo de origem do servidor. Um comando real para recuperar o arquivo de origem é incluído nas informações de mapeamento. Exemplo:

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

Posso usar a indexação de origem em um PDB portátil criado a partir de um assembly .NET Core?

Não, mas você pode usar Link de origem em vez disso.

Por quanto tempo os símbolos são mantidos?

Os símbolos estão associados à compilação publicada no Azure Pipelines e estão associados a uma compilação. Quando a compilação é excluída manualmente ou usando políticas de retenção, os símbolos também são excluídos. Se você quiser manter os símbolos indefinidamente, marque a compilação como Reter indefinidamente.

Requerimentos

Requisito Descrição
Tipos de pipeline YAML, construção clássica
Funciona em Agente, DeploymentGroup
Exigências Nenhum
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 2.144.0 ou superior
Categoria de tarefa Construir

Ver também