Partilhar via


PublishSymbols@2 – Tarefa Indexar origens e publicar símbolos v2

Utilize esta tarefa para indexar o código fonte e publicar os símbolos numa partilha de ficheiros ou num servidor de símbolos dos Artefactos do Azure.

A indexação do código fonte permite-lhe utilizar os ficheiros de símbolos para depurar a sua aplicação num computador diferente do que utilizou para criar a sua aplicação. Por exemplo, pode depurar uma aplicação criada por um agente de compilação a partir de um computador de programador que não tenha o código fonte.

Os servidores de símbolos permitem que o depurador obtenha automaticamente os ficheiros de símbolo corretos sem conhecer nomes de produtos, números de compilação ou nomes de pacotes.

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

Entradas

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

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

Nota

Os caminhos UNC não são suportados se selecionar o servidor de símbolos dos Artefactos do Azure como o tipo de servidor.


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

Especifica o padrão utilizado para detetar os ficheiros PDB a publicar. Veja Referência de padrões de correspondência de ficheiros para obter mais informações.


IndexSources - Origens de índice
boolean. Valor predefinido: true.

Especifica se pretende injetar informações do servidor de origem nos ficheiros PDB. Esta opção só é suportada em agentes do Windows.


PublishSymbols - Publicar símbolos
boolean. Valor predefinido: true.

Especifica se pretende publicar os ficheiros de símbolo.


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

Especifica onde publicar símbolos. Os símbolos publicados no servidor de símbolos dos Artefactos do Azure são acessíveis por qualquer utilizador com acesso à organização/coleção. Azure DevOps Server suporta apenas a opção File share . Veja instruções para Publicar símbolos para depuração para utilizar o Servidor de Símbolos nos Artefactos do Azure.


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

Especifica a partilha de ficheiros que aloja os seus símbolos. Este valor será utilizado na chamada para symstore.exe add como o /s parâmetro . Para preparar o arquivo de símbolos da SymStore:

  1. Configure uma pasta num servidor de partilha de ficheiros para armazenar os símbolos. Por exemplo, configure \fabrikam-share\symbols.
  2. Conceda permissão de controlo total à conta de serviço do agente de compilação.

Se deixar este argumento em branco, os símbolos serão indexados de origem, mas não serão publicados. Também pode armazenar os seus símbolos com as suas gotas. Veja Publicar Artefactos de Compilação.


CompressSymbols - Comprimir símbolos
boolean. Opcional. Utilize quando SymbolServerType = FileShare. Valor predefinido: false.

Comprime símbolos ao publicar na partilha de ficheiros.


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

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


IndexableFileFormats - Formatos de ficheiro de símbolo para publicar
string. Opcional. Utilize quando PublishSymbols = true && SymbolServerType = TeamServices. Valores permitidos: Default (O conjunto predefinido de símbolos a carregar), Pdb (Apenas os símbolos baseados em Pdb do Windows e pdb portáteis geridos.), SourceMap (Apenas símbolos SourceMap baseados em JavaScript (*.js.map)) All (Todos os formatos de símbolo suportados). Valor predefinido: Default.

Especifica os formatos de depuração a publicar no servidor de símbolos.


DetailedLog - Registo verboso
boolean. Valor predefinido: true.

Especifica o registo verboso.


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

Especifica se deve avisar se as origens não estão indexadas para um ficheiro PDB. Caso contrário, as mensagens são registadas como saída normal.


UseNetCoreClientTool - Utilizar a ferramenta de cliente NetCore
boolean. Valor predefinido: false.

Especifica se deve utilizar uma versão da ferramenta de carregamento de símbolos que suporta ficheiros DWARF e ELF. Esta opção só é importante nos agentes do Windows. Em agentes não Windows, será sempre utilizada a versão da ferramenta de carregamento de símbolos que suporta ficheiros DWARF e ELF.


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

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


SymbolsProduct - Produto
string.

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


SymbolsVersion - Versão
string.

Especifica o parâmetro de versão para symstore.exe. A predefinição é $(Build.BuildNumber).


SymbolsArtifactName - Nome do artefacto
string. Valor predefinido: Symbols_$(BuildConfiguration).

Especifica o nome do artefacto a utilizar para o artefacto de símbolos. Esta ação só deve ser utilizada 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 controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Utilize esta tarefa para indexar o código fonte e publicar os símbolos numa partilha de ficheiros ou num servidor de símbolos dos Artefactos do Azure.

A indexação do código fonte permite-lhe utilizar os ficheiros de símbolos para depurar a sua aplicação num computador diferente do que utilizou para criar a sua aplicação. Por exemplo, pode depurar uma aplicação criada por um agente de compilação a partir de um computador de programador que não tenha o código fonte.

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

Importante

Para eliminar símbolos que foram publicados com as Origens de Índice & tarefa Publicar Símbolos , primeiro tem de eliminar a compilação que gerou esses símbolos. Isto pode ser feito através de políticas de retenção ou eliminando manualmente a execução.

Como funciona a indexação?

Ao optar por indexar as origens, será injetada uma secção adicional nos ficheiros PDB. Normalmente, os ficheiros PDB contêm referências aos caminhos dos ficheiros de origem local, por exemplo: C:\BuildAgent_work\1\src\MyApp\Program.cs. A secção extra injetada no ficheiro PDB contém instruções de mapeamento para depuradores. As informações de mapeamento indicam como obter o item de servidor correspondente a cada caminho local.

O depurador do Visual Studio utilizará as informações de mapeamento para obter o ficheiro de origem do servidor. Um comando real para obter o ficheiro de origem está 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 utilizar a indexação de origem num PDB portátil criado a partir de uma assemblagem .NET Core?

Não, mas pode utilizar a Ligação de Origem .

Durante quanto tempo são retidos os Símbolos?

Os símbolos estão associados à compilação publicada nos Pipelines do Azure que estão associados a uma compilação. Quando a compilação é eliminada manualmente ou através de políticas de retenção, os símbolos também são eliminados. Se quiser manter os símbolos indefinidamente, marque a compilação como Reter Indefinidamente.

Requisitos

Requisito Description
Tipos de pipeline YAML, Compilação clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de tabelas definidas Qualquer
Versão do agente 2.144.0 ou superior
Categoria da tarefa Compilação
Requisito Description
Tipos de pipeline YAML, Compilação clássica
É executado em Agente, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de tabelas definidas Qualquer
Versão do agente 1.95.0 ou superior
Categoria da tarefa Compilação

Ver também