使用源链接启用调试和诊断
源链接是一种可为二进制文件提供一流源代码调试体验的技术。 借助启用了源链接的库,调试程序可以在你操作时下载底层源文件,并且你可以像处理任何其他源一样设置断点/跟踪点。 这样,你还可以使用分析工具在调试 Azure 等生产环境时轻松查找正确的源代码。
你可以通过设置一些属性并将 PackageReference 添加到源链接包来在自己 .NET 项目中启用源链接体验:
<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>
共享符号
在项目中启用源链接后,需确保在生成过程中创建的符号文件 (PDB) 可在 Visual Studio(或分析工具)中使用。 可以将 PDB 与应用程序(或者 NuGet 包)一起发布。 另外,可以使用以下项目设置将符号文件嵌入应用程序或程序集。
<DebugType>embedded</DebugType>
如果通过发布到 NuGet.org 的包以库的形式分发应用程序,建议生成符号包并发布到 NuGet.org。 调试程序可在需要时下载 NuGet.org 符号服务器上提供的符号。
注意
对于 NuGet 包,并不总是建议使用嵌入符号,因为它会增加大小,从而导致使用包的项目的还原时间增加。
备用源代码管理提供程序
源链接包可用于多个源代码管理提供程序:
- github.com 和 GitHub Enterprise
- Azure Repos(旧称 Visual Studio Team Services)
- Azure DevOps Server(旧称 Team Foundation Server)
- GitLab
- Bitbucket