Compartir vía


PublishSymbols@2: tarea Indexar orígenes y publicar símbolos v2

Use esta tarea para indexar el código fuente y publicar los símbolos en un recurso compartido de archivos o en el servidor de símbolos de Azure Artifacts.

La indexación del código fuente permite usar los archivos de símbolos para depurar la aplicación en una máquina distinta de la empleada para compilar la aplicación. Por ejemplo, puede depurar una aplicación compilada por un agente de compilación desde una máquina de desarrollo que no tenga el código fuente.

Los servidores de símbolos permiten al depurador recuperar automáticamente los archivos de símbolos correctos sin conocer los nombres de producto, los números de compilación o los nombres de paquete.

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 - Ruta de acceso a la carpeta de símbolos
string. Valor predeterminado: $(Build.SourcesDirectory).

Especifica la ruta de acceso a la carpeta que se busca con archivos de símbolos. El valor predeterminado es $(Build.SourcesDirectory). De lo contrario, especifique una ruta de acceso raíz, como $(Build.BinariesDirectory)/MyProject.

Nota

Las rutas de acceso UNC no se admiten si selecciona el servidor de símbolos de Azure Artifacts como tipo de servidor.


SearchPattern - patrón de Búsqueda
string. Obligatorio. Valor predeterminado: **/bin/**/*.pdb.

Especifica el patrón usado para detectar los archivos PDB que se van a publicar. Consulte Referencia de patrones de coincidencia de archivos para obtener más información.


IndexSources - Orígenes de índice
boolean. Valor predeterminado: true.

Especifica si se va a insertar información del servidor de origen en los archivos PDB. Esta opción solo se admite en agentes de Windows.


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

Especifica si se van a publicar los archivos de símbolos.


SymbolServerType - Tipo de servidor de símbolos
string. Necesario cuando PublishSymbols = true. Valores permitidos: TeamServices (Servidor de símbolos de esta organización o colección (requiere Azure Artifacts)), FileShare (recurso compartido de archivos).

Especifica dónde publicar símbolos. Todo usuario con acceso a la organización o colección puede acceder a los símbolos publicados en el servidor de símbolos de Azure Artifacts. Azure DevOps Server solo admite la File share opción . Consulte las instrucciones para publicar símbolos para la depuración para usar el servidor de símbolos en Azure Artifacts.


SymbolsPath - Ruta de acceso para publicar símbolos
string. Opcional. Use cuando PublishSymbols = true && SymbolServerType = FileShare.

Especifica el recurso compartido de archivos que hospeda los símbolos. Este valor se usará en la llamada a symstore.exe add como /s parámetro . Para preparar el almacén de símbolos de SymStore:

  1. Configure una carpeta en un servidor de uso compartido de archivos para almacenar los símbolos. Por ejemplo, configure \fabrikam-share\symbols.
  2. Conceda el permiso Control total a la cuenta de servicio del agente de compilación.

Si deja este argumento en blanco, los símbolos se indexarán de origen, pero no se publicarán También puede almacenar sus símbolos con las gotas. Consulte Publicar artefactos de compilación.


CompressSymbols - Comprimir símbolos
boolean. Opcional. Use cuando SymbolServerType = FileShare. Valor predeterminado: false.

Comprime los símbolos al publicar en el recurso compartido de archivos.


SymbolExpirationInDays - Expiración de símbolos (en días)
string. Opcional. Use cuando PublishSymbols = true && SymbolServerType = TeamServices. Valor predeterminado: 36530.

Especifica el número de días que se deben conservar los símbolos.


IndexableFileFormats - Formatos de archivo de símbolos para publicar
string. Opcional. Use cuando PublishSymbols = true && SymbolServerType = TeamServices. Valores permitidos: Default (El conjunto predeterminado de símbolos que se van a cargar), Pdb (solo símbolos basados en Pdb basados en Pdb de Windows y pdb portable administrados). SourceMap (Solo símbolos sourceMap basados en JavaScript (*.js.map)), All (todos los formatos de símbolo admitidos). Valor predeterminado: Default.

Especifica los formatos de depuración que se van a publicar en el servidor de símbolos.


DetailedLog - Registro detallado
boolean. Valor predeterminado: true.

Especifica el registro detallado.


TreatNotIndexedAsWarning - Advertir si no está indizado
boolean. Valor predeterminado: false.

Especifica si se debe advertir si los orígenes no están indizado para un archivo PDB. De lo contrario, los mensajes se registran como salida normal.


UseNetCoreClientTool - Uso de la herramienta cliente de NetCore
boolean. Valor predeterminado: false.

Especifica si se debe usar una versión de la herramienta de carga de símbolos que admita archivos ENANO y ELF. Esta opción solo importa en los agentes de Windows. En los agentes que no son de Windows, siempre se usará la versión de la herramienta de carga de símbolos compatible con archivos DWARF y ELF.


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

Especifica el número de minutos que se deben esperar antes de que se produzca un error en esta tarea.


SymbolsProduct - Producto
string.

Especifica el parámetro de producto en symstore.exe. El valor predeterminado es $(Build.DefinitionName).


SymbolsVersion - Versión
string.

Especifica el parámetro de versión en symstore.exe. El valor predeterminado es $(Build.BuildNumber).


SymbolsArtifactName - Nombre del artefacto
string. Valor predeterminado: Symbols_$(BuildConfiguration).

Especifica el nombre del artefacto que se va a usar para el artefacto de símbolos. Esto solo debe usarse con el tipo de servidor de símbolos FileShare. El valor predeterminado es Symbols_$(BuildConfiguration).


Opciones de control de tareas

Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Comentarios

Use esta tarea para indexar el código fuente y publicar los símbolos en un recurso compartido de archivos o en el servidor de símbolos de Azure Artifacts.

La indexación del código fuente permite usar los archivos de símbolos para depurar la aplicación en una máquina distinta de la empleada para compilar la aplicación. Por ejemplo, puede depurar una aplicación compilada por un agente de compilación desde una máquina de desarrollo que no tenga el código fuente.

Los servidores de símbolos permiten al depurador recuperar automáticamente los archivos de símbolos correctos sin conocer los nombres de producto, los números de compilación o los nombres de paquete.

Importante

Para eliminar símbolos publicados mediante la tarea Index Sources & Publish Symbols , primero debe eliminar la compilación que generó esos símbolos. Esto se puede lograr mediante directivas de retención o la eliminación manual de la ejecución.

¿Cómo funciona la indexación?

Al elegir indexar los orígenes, se insertará una sección adicional en los archivos PDB. Normalmente, los archivos PDB solo contienen referencias a las rutas de archivo de origen locales, por ejemplo: C:\BuildAgent_work\1\src\MyApp\Program.cs. La sección adicional insertada en el archivo PDB contiene instrucciones de asignación para depuradores. La información de asignación indica cómo recuperar el elemento de servidor correspondiente a cada ruta de acceso local.

El depurador de Visual Studio usará la información de asignación para recuperar el archivo de origen del servidor. Un comando real para recuperar el archivo de origen se incluye en la información de asignación. Ejemplo:

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

¿Puedo usar la indexación de origen en una PDB portátil creada a partir de un ensamblado de .NET Core?

No, pero puede usar Source Link en su lugar.

¿Cuánto tiempo se conservan los símbolos?

Los símbolos están asociados a la compilación publicada en Azure Pipelines que están asociadas a una compilación. Al eliminarse la compilación manualmente o mediante directivas de retención, también se eliminan los símbolos. Si desea conservar los símbolos indefinidamente, marque la compilación como Retener indefinidamente.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 2.144.0 o superior
Categoría de la tarea: Build
Requisito Descripción
Tipos de canalización YAML, compilación clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones None
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 1.95.0 o superior
Categoría de la tarea: Build

Consulte también