Включение отладки и диагностики с помощью Source Link
Source Link — это технология, которая обеспечивает превосходную отладку исходного кода для двоичных файлов. С помощью библиотек с поддержкой Source Link отладчик может скачивать базовые исходные файлы по мере выполнения, и вы можете задать точки останова и точки трассировки, как и любой другой источник. Она также позволяет средствам анализа легко находить нужный исходный код при отладке таких сред разработки, как Azure.
Вы можете включить технологию Source Link в собственном проекте .NET, задав несколько свойств и добавив PackageReference в пакет 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>
Общий доступ к символам
После включения Source Link в проекте необходимо убедиться, что файлы символов (в формате PDB), созданные во время сборки, доступны в Visual Studio (или вашем средстве анализа). Вы можете распространять PDB вместе с приложением (или в пакете NuGet). Кроме того, можно внедрить файл символов в приложение или сборку с помощью следующего параметра проекта:
<DebugType>embedded</DebugType>
Если приложение распространяется как библиотека с помощью пакета, опубликованного на NuGet.org, рекомендуем создать пакет символов и опубликовать его на том же сервере. Символы, доступные на сервере символов NuGet.org, позволяют отладчику скачивать из при необходимости.
Примечание.
Не рекомендуем всегда внедрять символы для пакетов NuGet, так как это увеличивает размер и, следовательно, время восстановления для проектов, которые используют пакет.
Альтернативные поставщики системы управления версиями
Пакеты Source Link доступны для работы в системах управления версиями нескольких поставщиков:
- github.com, в том числе по предложению GitHub Enterprise
- Azure Repos (ранее — Visual Studio Team Services)
- Azure DevOps Server (ранее — Team Foundation Server)
- GitLab
- Bitbucket;