Activer le débogage et les diagnostics avec Source Link

Source Link est une technologie qui permet des expériences de débogage source de première classe pour les fichiers binaires. Avec les bibliothèques compatibles avec Source Link, le débogueur peut télécharger les fichiers sources sous-jacents à mesure que vous avancez, et vous pouvez définir des points d’arrêt/points de trace comme vous le feriez avec n’importe quelle autre source. Cela permet également aux outils d’analyse de trouver facilement le code source approprié lors du débogage d’environnements de production comme Azure.

Vous pouvez activer l’expérience Source Link dans votre propre projet .NET en définissant quelques propriétés et en ajoutant un PackageReference à un package 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>

Symboles de partage

Après avoir activé Source Link dans votre projet, vous devrez vous assurer que les fichiers de symboles (PDB) créés au cours du processus de génération sont disponibles pour Visual Studio (ou votre outil d’analyse). Vous pouvez distribuer des fichiers PDB en même temps que votre application (ou dans le package NuGet). Vous pouvez également incorporer le fichier de symboles dans l’application ou l’assembly avec le paramètre de projet suivant.

<DebugType>embedded</DebugType>

Si votre application est distribuée en tant que bibliothèque via un package publié sur NuGet.org, il est recommandé de générer un package de symboles et de le publier également sur NuGet.org. Les symboles disponibles sur le serveur de symboles NuGet.org permettent au débogueur de le télécharger si nécessaire.

Notes

L’incorporation de symboles n’est pas toujours recommandée pour les packages NuGet, car elle augmente la taille et, par conséquent, la durée de restauration des projets qui consomment votre package.

Autres fournisseurs de contrôle de code source

Les packages Source Link sont disponibles pour plusieurs fournisseurs de contrôle de code source :