Compartir a través de


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 un 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 un equipo distinto del que usó 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.

Sintaxis

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

Entradas

SymbolsFolder - ruta de acceso a la carpeta 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.


patrón de búsqueda de SearchPattern -
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.


Manifest - de manifiesto
string.

Ruta de acceso a un archivo que contiene más claves de cliente de símbolos que se van a publicar.


de orígenes de índice de IndexSources -
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 Symbol
string. Obligatorio cuando PublishSymbols = true. Valores permitidos: TeamServices (servidor de símbolos en esta organización o colección (requiere Azure Artifacts)), FileShare (recurso compartido de archivos).

Especifica dónde publicar símbolos. Los símbolos publicados en el servidor de símbolos de Azure Artifacts son accesibles por cualquier usuario con acceso a la organización o colección. Azure DevOps Server solo admite la opción File share. Consulte las instrucciones para Publicar símbolos para depurar 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 parámetro /s. 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 permiso de control total a la cuenta de servicio del agente de compilación de .

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


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

Comprime 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 symbol para publicar
string. Opcional. Use cuando PublishSymbols = true && SymbolServerType = TeamServices. Valores permitidos: Default (conjunto predeterminado de símbolos que se van a cargar), Pdb (solo símbolos basados en Pdb de Windows pdb 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 - de 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 indexados para un archivo PDB. De lo contrario, los mensajes se registran como salida normal.


UseNetCoreClientTool - uso de la herramienta de cliente 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 que admita archivos ENANO y ELF.


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

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


SymbolsProduct - product
string.

Especifica el parámetro de producto que se va a symstore.exe. El valor predeterminado es $(Build.DefinitionName).


SymbolsVersion - versión
string.

Especifica el parámetro de versión que se va a 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 se debe usar 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 sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

Use esta tarea para indexar el código fuente y publicar los símbolos en un recurso compartido de archivos o en un 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 un equipo distinto del que usó 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 que se publicaron mediante Orígenes de índice & tarea Publicar símbolos, primero debe eliminar la compilación que generó esos símbolos. Esto se puede lograr mediante directivas de retención o mediante 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 contienen referencias a las rutas de acceso del archivo de origen local, 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. En la información de asignación se incluye un comando real para recuperar el archivo de origen. 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. Cuando la compilación se elimina 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 Conservar indefinidamente.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquiera
variables settable Cualquiera
Versión del agente 2.144.0 o superior
Categoría de tarea Construir
Requisito Descripción
Tipos de canalización YAML, compilación clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquiera
variables settable Cualquiera
Versión del agente 1.95.0 o superior
Categoría de tarea Construir

Consulte también