Povolení ladění a diagnostiky pomocí odkazu na zdroj
Source Link je technologie, která umožňuje prvotřídní prostředí pro ladění zdrojů pro binární soubory. Pomocí knihoven s povoleným zdrojovým propojením může ladicí program při kroku stáhnout podkladové zdrojové soubory a nastavit zarážky nebo tracepointy stejně jako u jakéhokoli jiného zdroje. Umožňuje také analytickým nástrojům snadno najít správný zdrojový kód při ladění produkčních prostředí, jako je Azure.
Prostředí odkazu na zdroj můžete povolit ve vlastním projektu .NET nastavením několika vlastností a přidáním PackageReference do balíčku zdrojového odkazu:
<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>
Sdílení symbolů
Jakmile v projektu povolíte odkaz na zdroj, budete muset zajistit, aby soubory symbolů (PDB) vytvořené během procesu sestavení byly k dispozici sadě Visual Studio (nebo analytickému nástroji). Soubory PDB můžete distribuovat společně s aplikací (nebo v balíčku NuGet). Případně můžete soubor symbolů vložit do aplikace nebo sestavení s následujícím nastavením projektu.
<DebugType>embedded</DebugType>
Pokud je vaše aplikace distribuovaná jako knihovna prostřednictvím balíčku publikovaného do NuGet.org, doporučuje se sestavit balíček symbolů a publikovat ho i do NuGet.org. Symboly dostupné na serveru symbolů NuGet.org umožňují ladicímu programu, aby si ho v případě potřeby stáhl.
Poznámka:
U balíčků NuGet se vždy nedoporučuje vkládat symboly, protože se zvětšují velikost, a tím i čas obnovení pro projekty, které váš balíček spotřebovávají.
Alternativní zprostředkovatelé správy zdrojového kódu
Balíčky zdrojového propojení jsou k dispozici pro více poskytovatelů správy zdrojového kódu:
- github.com a GitHub Enterprise
- Azure Repos (dříve Visual Studio Team Services)
- Azure DevOps Server (bývalý Team Foundation Server)
- GitLab
- Bitbucket