Xamarin.Forms NuGet パッケージには、Source Link マッピングが含まれます。 Source Link は、NuGet パッケージに含まれるコンパイル済みライブラリをソース コード リポジトリにマップします。 Visual Studio は、デバッグ中にソース コード ファイルをダウンロードし、開発者がコードをステップ 実行して、ソースからビルドせずにパッケージのデバッグを有効にします。
Source Link の使用方法の詳細については、「Source Link のドキュメント」参照してください。
警告
Visual Studio 2019 では、.NET デバッガー の Source Link がサポートされていますが、現在、Mono デバッガー の Source Link はサポートされていません。 そのため、Source Link を使用して UWP アプリをデバッグできますが、Android アプリや iOS アプリはデバッグできません。 UWP アプリをデバッグするときは、デバッグするライブラリの PDB ファイルが、アプリがコンパイルされる bin ディレクトリの AppX フォルダーにコピーされていることを確認する必要があります。
ソース リンクを有効にする
Source Link を使用するには、外部コードのデバッグを有効にする必要があります。そうしないと、デバッガーは現在のソリューションに含まれていないコードの呼び出しをステップ実行します。 Visual Studio 2019 では、これは [デバッグ] セクションの [オプション] メニューにあります:
[マイ コードのみを有効にする] が無効になっており、[Source Link のサポートを有効にする] が有効になっていることを確認します。
ソース リンクを有効にする
Source Link を使用するには、外部コードのデバッグを有効にする必要があります。そうしないと、デバッガーは現在のソリューションに含まれていないコードの呼び出しをステップ実行します。 このオプションは、[デバッガー] セクションの [ユーザー設定] ウィンドウにあります:
[外部コードへのステップイン] が有効になっていることを確認します。
Source Link を使用した Xamarin.Forms のデバッグ
外部パッケージのデバッグが有効になっている場合、Visual Studio は NuGet パッケージに含まれる Source Link マッピングを使用して、外部ソース コードをダウンロードしてステップ実行します。 これをテストするには、Xamarin.Forms によって提供されるメソッドの呼び出しにブレークポイントを設定します:
デバッガー オプションで指定した設定に応じて、Visual Studio によってソース ファイルがダウンロードされていることが警告されます:
Visual Studio にファイルのダウンロードを許可すると、デバッガーは外部コードにステップ インします。
Source Link のキャッシュ
Source Link では、パフォーマンスのためにキャッシュが使用されます。 ソース リンクのキャッシュ ディレクトリは、[シンボル] セクションの [デバッグ] の [オプション] メニューで定義されています:
このメニューを使用すると、すべてのデバッグ シンボルのキャッシュ ディレクトリを指定できるほか、キャッシュされたシンボルに関する問題が発生した場合はキャッシュをクリアできます。
Source Link のキャッシュ
Source Link では、パフォーマンスのためにキャッシュが使用されます。 MacOS の Source Link のキャッシュ ディレクトリが /Users/<username>/Library/Caches/VisualStudio/8.0/Symbols
です。 このフォルダーには、ソース ファイルのダウンロードに使用されるリポジトリを格納するサブフォルダーが含まれています。 NuGet パッケージのバッキング リポジトリが変更された場合は、これらのフォルダーを手動で削除してキャッシュを更新することが必要になる場合があります。