Publicación de símbolos para la depuración

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018- TFS 2017

Con Azure Pipelines, puede publicar los símbolos en Azure Artifacts servidor de símbolos mediante la tarea Index sources and publish symbols (Orígenes de índice y publicación de símbolos). Puede usar el depurador para conectarse y 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. Con Azure Pipelines, también puede publicar los símbolos en recursos compartidos de archivos y archivos PDU portátiles.

Nota

La tarea Index sources and publish symbols (Orígenes de índice y publicación de símbolos) no se admite en las canalizaciones de versión.

Publicación de símbolos en Azure Artifacts servidor de símbolos

Para publicar los símbolos en Azure Artifacts servidor de símbolos, puede usar la tarea Orígenes de índice Publicar símbolos.

  1. En la definición de canalización, + seleccione para agregar una nueva tarea.

  2. Busque la tarea Index sources (Orígenes de índice) y publish symbols (Publicar símbolos). Seleccione Agregar para agregarlo a la canalización.

    Captura de pantalla que muestra cómo agregar los orígenes de índice y publicar símbolos en la canalización actual

  3. Rellene los campos obligatorios de la siguiente manera:

    Captura de pantalla que muestra los orígenes de índice y la tarea publicar símbolos para publicar símbolos Azure Artifacts servidor de símbolos

  • Versión dela tarea: 2.\*.
  • Versión dela tarea: 1.\*.
  • Nombre para mostrar:nombre para mostrar de la tarea.

  • Ruta de acceso a la carpeta de símbolos:ruta de acceso a la carpeta que hospeda los archivos de símbolos.

  • Patrón debúsqueda: el patrón que se usa para buscar los archivos pdb en la carpeta especificada en la carpeta Ruta de acceso a símbolos. Se admiten caracteres comodín de carpeta única ( ) y * caracteres comodín recursivos ( ** ). Ejemplo: *\bin**.pdb busca todos los archivos .pdb en todos los subdirectorios bin.

  • Orígenes deíndice: indica si se va a insertar información del servidor de origen en los archivos PDB.

  • Publicar símbolos:indica si se deben publicar los archivos de símbolos.

    • Tipo de servidor desímbolos: seleccione Servidor de símbolos en esta organización o colección (requiere Azure Artifacts) para publicar los símbolos en Azure Artifacts servidor de símbolos.
  • Registro detallado:compruebe si desea incluir más información en los registros.

Publicación de símbolos en un recurso compartido de archivos

Además de Azure Artifacts servidor de símbolos, también puede publicar los símbolos en un recurso compartido de archivos mediante la tarea Orígenes de índice y Publicar símbolos.

  1. En la definición de canalización, + seleccione para agregar una nueva tarea.

  2. Busque la tarea Index sources (Orígenes de índice) y publish symbols (Publicar símbolos). Seleccione Agregar para agregarlo a la canalización.

    Captura de pantalla que muestra cómo agregar los orígenes de índice y publicar símbolos en la canalización actual

  3. Rellene los campos obligatorios de la siguiente manera:

    Captura de pantalla que muestra los orígenes de índice y la tarea publicar símbolos para publicar símbolos en un recurso compartido de archivos

  • Versión dela tarea: 2.\*.
  • Versión dela tarea: 1.\*.
  • Nombre para mostrar:nombre para mostrar de la tarea.

  • Ruta de acceso a la carpeta de símbolos:ruta de acceso a la carpeta que hospeda los archivos de símbolos.

  • Patrón debúsqueda: el patrón que se usa para buscar los archivos pdb en la carpeta especificada en la carpeta Ruta de acceso a símbolos.

  • Orígenes deíndice: indica si se va a insertar información del servidor de origen en los archivos PDB.

  • Publicar símbolos:indica si se deben publicar los archivos de símbolos.

    • Tipo de servidor desímbolos: seleccione Recurso compartido de archivos para publicar los símbolos en un recurso compartido de archivos.
    • Ruta de acceso para publicar símbolos:el recurso compartido de archivos que hospedará los símbolos.
  • Registro detallado:compruebe si desea incluir más información en los registros.

Publicación de archivos PDU portátiles en Azure Artifacts servidor de símbolos

Los archivos PDU portátiles son archivos de símbolos que se pueden crear y usar en todas las plataformas a diferencia de los PDU tradicionales que solo se usan Windows. Si usa archivos PDU portátiles, debe usar la tarea Orígenes de índice y Publicar símbolos para publicar los símbolos. En el caso de los archivos PDU portátiles, la compilación realiza la indexación, pero debe usar SourceLink para indexar los símbolos como parte de la canalización.

El vínculo de código fuente es un conjunto de herramientas que permiten a los desarrolladores depurar su código fuente mediante la asignación de los ensamblados de .NET al código fuente. Consulte el repositorio dotnet/sourcelink GitHub para obtener información sobre los distintos paquetes incluidos.

  • Para los proyectos hospedados en GitHub, agregue la referencia Microsoft.SourceLink.GitHub del paquete al archivo del proyecto.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
  • Para los proyectos hospedados en Azure Repos, agregue la referencia Microsoft.SourceLink.AzureRepos.Git del paquete al archivo del proyecto.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.AzureRepos.Git" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
  • Para los proyectos hospedados en Azure DevOps Server, agregue la referencia Microsoft.SourceLink.AzureDevOpsServer.Git del paquete al archivo del proyecto.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.AzureDevOpsServer.Git" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    

Configuración de la tarea de compilación

El siguiente paso consiste en modificar la tarea de compilación en la canalización para invocar source link durante el proceso de compilación.

  1. En la definición de canalización, seleccione la tarea Compilar solución. Puede buscar y agregar la tarea de Visual Studio compilación a la canalización si aún no la tiene.

  2. Agregue el siguiente fragmento de código al MSBuild argumentos.

    /p:SourceLinkCreate=true
    
  3. Seleccione Guardar cola cuando haya terminado.

    MSBuild argumentos de la tarea de solución de compilación

Configuración de la tarea de publicación

La tarea Símbolos de publicación de orígenes de índice se usa para indexar el código fuente y publicar los símbolos & en Azure Artifacts servidor de símbolos. Dado que se usa la Visual Studio de compilación para indexar el origen, se deshabilitará la indexación en la tarea de publicación.

  1. En la definición de canalización, + seleccione para agregar una nueva tarea.

  2. Busque la tarea Index sources (Orígenes de índice) y publish symbols (Publicar símbolos). Seleccione Agregar para agregarlo a la canalización.

    Captura de pantalla que muestra cómo agregar los orígenes de índice y publicar símbolos en la canalización actual

  3. Rellene los campos obligatorios de la siguiente manera:

    Captura de pantalla que muestra cómo configurar la tarea de publicación para publicar símbolos en Azure Artifacts servidor de símbolos

  • Versión dela tarea: 2.\*.
  • Versión dela tarea: 1.\*.
  • Orígenes de índice:desactive esta opción para deshabilitar la indexación. La indexación se realiza durante la compilación. Consulte el paso anterior para obtener más detalles.

  • Publicar símbolos:indica si se deben publicar los archivos de símbolos.

    • Tipo de servidor desímbolos: seleccione Servidor de símbolos en esta organización o colección (requiere Azure Artifacts) para publicar los símbolos en Azure Artifacts servidor de símbolos.

Configuración de Visual Studio

Antes de empezar a consumir nuestros símbolos Azure Artifacts servidor de símbolos, vamos a asegurarnos de que Visual Studio está configurado correctamente:

  1. En Visual Studio, seleccione Herramientas y, a continuación,Opciones.

  2. Seleccione Símbolos en el menú Depuración.

  3. Seleccione el + signo para agregar una nueva ubicación del servidor de símbolos.

    Captura de pantalla que muestra cómo agregar una nueva ubicación del servidor de símbolos

  4. Se abrirá un nuevo cuadro de diálogo, seleccione su cuenta en el menú desplegable y, a continuación, seleccione la organización a la que desea conectarse. Seleccione Conectar cuando haya terminado.

  5. Seleccione General en la misma sección Depuración. Desplácese hacia abajo y active Enable Source Link support to enable support for portable PDBs (Habilitar compatibilidad con vínculos de origen para habilitar la compatibilidad con archivos PDU portátiles).

    Habilitación de la compatibilidad con vínculos de origen

Nota

La comprobación de la opción Habilitar compatibilidad con el servidor de origen permite usar el servidor de origen cuando no hay código fuente en el equipo local o el archivo de símbolos no coincide con el código fuente. Si desea habilitar la depuración de código fuente de terceros, desactive la casilla Habilitar Solo mi código.

Importante

Para eliminar los símbolos publicados mediante la tarea Index Sources Publish Symbols (Símbolos de publicación de orígenes de índice), primero debe eliminar la compilación que generó esos símbolos. Esto se puede lograr mediante el uso de directivas de retención o mediante la eliminaciónmanual de la ejecución .

Preguntas más frecuentes

P: ¿Durante cuánto tiempo se conservan los símbolos?

A. Un archivo de símbolos tiene el mismo período de retención que la compilación que lo generó. Al eliminar una compilación manualmente o mediante directivas de retención, también se eliminarán los símbolos generados por esa compilación.

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

A. Esto no es posible en este momento. La indexación de origen no se admite actualmente para PDU portátiles. El enfoque recomendado es configurar la compilación para realizar la indexación.