Włączanie debugowania i diagnostyki za pomocą linku źródłowego
Link źródłowy to technologia, która umożliwia najwyższej klasy debugowanie źródeł dla plików binarnych. W przypadku bibliotek z obsługą linków źródłowych debuger może pobrać bazowe pliki źródłowe podczas kroku i ustawić punkty przerwania/punkty śledzenia, tak jak w przypadku dowolnego innego źródła. Umożliwia również narzędziom do analizy łatwe znajdowanie poprawnego kodu źródłowego podczas debugowania środowisk produkcyjnych, takich jak platforma Azure.
Możesz włączyć środowisko linku źródłowego we własnym projekcie platformy .NET, ustawiając kilka właściwości i dodając element PackageReference do pakietu linku źródłowego:
<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>
Udostępnianie symboli
Po włączeniu linku źródłowego w projekcie należy upewnić się, że pliki symboli (PDB) utworzone podczas procesu kompilacji są dostępne dla programu Visual Studio (lub narzędzia do analizy). Pliki PDB można dystrybuować razem z aplikacją (lub w pakiecie NuGet). Alternatywnie możesz osadzić plik symboli w aplikacji lub zestawie przy użyciu następującego ustawienia projektu.
<DebugType>embedded</DebugType>
Jeśli aplikacja jest dystrybuowana jako biblioteka za pośrednictwem pakietu opublikowanego w NuGet.org, zaleca się utworzenie pakietu symboli i opublikowanie go również w NuGet.org. Symbole dostępne na serwerze symboli NuGet.org umożliwiają debugerowi pobranie go w razie potrzeby.
Uwaga
Symbole osadzania nie zawsze są zalecane w przypadku pakietów NuGet, ponieważ zwiększają rozmiar, a tym samym czas przywracania dla projektów korzystających z pakietu.
Alternatywni dostawcy kontroli źródła
Pakiety linków źródłowych są dostępne dla wielu dostawców kontroli źródła:
- github.com i GitHub Enterprise
- Azure Repos (dawniej Visual Studio Team Services)
- Azure DevOps Server (były serwer Team Foundation Server)
- GitLab
- Bitbucket