Abilitare il debug e la diagnostica con il collegamento all'origine

Source Link è una tecnologia che consente esperienze di debug di origine di prima classe per i file binari. Con le librerie abilitate per il collegamento all'origine, il debugger può scaricare i file di origine sottostanti durante l'esecuzione dell'istruzione e impostare punti di interruzione/punti di traccia come si farebbe con qualsiasi altra origine. Consente inoltre agli strumenti di analisi di trovare facilmente il codice sorgente corretto durante il debug di ambienti di produzione come Azure.

È possibile abilitare l'esperienza Di collegamento all'origine nel proprio progetto .NET impostando alcune proprietà e aggiungendo packageReference a un pacchetto di collegamento di origine:

<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>

Simboli di condivisione

Dopo aver abilitato Il collegamento di origine nel progetto, è necessario assicurarsi che i file di simboli (PDB) creati durante il processo di compilazione siano disponibili per Visual Studio (o lo strumento di analisi). È possibile distribuire i PDB insieme all'applicazione (o nel pacchetto NuGet). In alternativa, è possibile incorporare il file di simboli nell'applicazione o nell'assembly con l'impostazione di progetto seguente.

<DebugType>embedded</DebugType>

Se l'applicazione viene distribuita come libreria tramite un pacchetto pubblicato in NuGet.org, è consigliabile compilare un pacchetto di simboli e pubblicarlo anche in NuGet.org. I simboli disponibili nel server dei simboli NuGet.org consentono al debugger di scaricarlo quando necessario.

Nota

I simboli di incorporamento non sono sempre consigliati per i pacchetti NuGet perché aumentano le dimensioni e quindi il tempo di ripristino per i progetti che utilizzano il pacchetto.

Provider di controllo del codice sorgente alternativi

I pacchetti di collegamento di origine sono disponibili per più provider di controllo del codice sorgente: