ソース リンクを使用してデバッグと診断を有効にする

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 パッケージは、複数のソース管理プロバイダーで使用できます。