使用 Source Link 啟用偵錯和診斷
Source Link 是一項可為二進位檔案提供一流原始檔偵錯體驗的技術。 透過啟用 Source Link 的程式庫,偵錯工具可以在您逐步執行時,下載基礎來源檔案,而且您可以像使用任何其他來源一樣設定中斷點/追蹤點。 它也可讓分析工具在偵錯 Azure 等生產環境時,輕鬆地尋找正確的原始程式碼。
您可以設定幾個屬性,並將 PackageReference 新增至 Source Link 套件,以在自己的 .NET 專案中啟用 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.org 符號伺服器上可用的符號可讓偵錯工具在需要時下載。
注意
NuGet 套件不一定建議使用內嵌符號,因為它會增加大小,進而增加使用套件的專案的還原時間。
其他原始檔控制提供者
Source Link 套件適用於多個原始檔控制提供者:
- github.com 和 GitHub Enterprise
- Azure Repos (之前稱為 Visual Studio Team Services)
- Azure DevOps Server (之前稱為 Team Foundation Server)
- GitLab
- Bitbucket