Habilitación de la depuración y el diagnóstico con Source Link
Source Link es una tecnología que permite experiencias de depuración de origen de primera clase para archivos binarios. Con las bibliotecas habilitadas para Source Link, el depurador puede descargar los archivos de origen subyacentes a medida que avanza y puede establecer puntos de interrupción o puntos de seguimiento como lo haría con cualquier otro origen. También permite a las herramientas de análisis encontrar fácilmente el código fuente correcto al depurar entornos de producción como Azure.
Puede habilitar Source Link experiencia en su propio proyecto de .NET estableciendo algunas propiedades y agregando una packageReference a un paquete de Source Link:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<!-- Optional: Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element) -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Optional: Embed source files that are not tracked by the source control manager in the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Optional: Build symbol package (.snupkg) to distribute the PDB containing Source Link -->
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>
<ItemGroup>
<!-- This assumes GitHub source control but other repo options are available -->
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
</ItemGroup>
</Project>
Uso compartido de símbolos
Una vez que haya habilitado Source Link en el proyecto, deberá asegurarse de que los archivos de símbolos (PDB) creados durante el proceso de compilación están disponibles para Visual Studio (o la herramienta de análisis). Puede distribuir archivos PDB junto con la aplicación (o en el paquete NuGet). Como alternativa, puede insertar el archivo de símbolos en la aplicación o ensamblado con la siguiente configuración del proyecto.
<DebugType>embedded</DebugType>
Si la aplicación se distribuye como una biblioteca a través de un paquete publicado en NuGet.org, se recomienda compilar un paquete de símbolos y publicarlo también en NuGet.org. Los símbolos disponibles en el servidor de símbolos de NuGet.org permiten al depurador descargarlo cuando sea necesario.
Nota
Los símbolos de inserción no siempre se recomiendan para los paquetes NuGet porque aumenta el tamaño y, por tanto, el tiempo de restauración de los proyectos que consumen el paquete.
Proveedores de control de código fuente alternativos
Source Link paquetes están disponibles para varios proveedores de control de código fuente:
- github.com y GitHub Enterprise
- Azure Repos (anterior Visual Studio Team Services)
- Azure DevOps Server (anterior Team Foundation Server)
- GitLab
- Bitbucket