ソース リンクを使用してデバッグと診断を有効にする
Source Link は、バイナリに対してファースト クラスのソース デバッグ エクスペリエンスを可能にするテクノロジです。 Source Link が有効なライブラリを使用すると、デバッガーはステップイン時に基になるソース ファイルをダウンロードでき、他のソースと同様にブレークポイントまたはトレースポイントを設定できます。 また、Azure などの運用環境をデバッグするときに、分析ツールで正しいソース コードを簡単に見つけることもできます。
いくつかのプロパティを設定し、Source Link パッケージに PackageReference を追加することで、独自の .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 (または分析ツール) で使用できることを確実にする必要があります。 アプリケーションと共に (または NuGet パッケージで) PDB を配布できます。 または、次のプロジェクト設定を使用して、シンボル ファイルをアプリケーションまたはアセンブリに埋め込むことができます。
<DebugType>embedded</DebugType>
アプリケーションが NuGet.org に発行されたパッケージを介してライブラリとして配布される場合は、シンボル パッケージをビルドして NuGet.org に発行することをお勧めします。 NuGet.org シンボル サーバーで使用できるシンボルを使用すると、デバッガーから必要に応じてそれをダウンロードできます。
Note
NuGet パッケージでは、サイズが大きくなり、パッケージを使用するプロジェクトの復元時間が長くなるため、埋め込みシンボルは必ずしもお勧めしません。
代替ソース管理プロバイダー
Source Link パッケージは、複数のソース管理プロバイダーで使用できます。
- github.com と GitHub Enterprise
- Azure Repos (旧 Visual Studio Team Services)
- Azure DevOps Server (旧 Team Foundation Server)
- GitLab
- Bitbucket