web-dev-qa-db-ja.com

.NET Coreソースのデバッグ(Visual Studio 2019)

Visual Studio 2019と.NET Core 3 Webアプリケーションを使用しています。 .NET Coreソースコードをデバッグしたいので、エラーが発生したときにコードに飛び込んでさらに詳しく調べることができます。その方法の正確な説明が見つからなかったので(Microsoftのドキュメントサイトでも)、ここまでにわかっていることをここで要約してみましょう。

Visual Studioには次のオプションがあります。

      1. コードのみを有効にする
      2. .NET Frameworkソースのステップ実行を有効にする
      3. ソースサーバーのサポートを有効にする
      4. ソースリンクサポートを有効にする

最初の2つのオプションは相互に排他的です。天気がわかりませんが、2番目のオプションを選択する必要があると思いますが、このオプションの「.NET Framework」には.NET Coreが含まれていますか?

現在、.NET Coreはオープンソースであり、GitHubで利用できるため、3番目と4番目のオプションを理解できません。 3番目は、Microsoft Symbol Serverからソースをプルできるようにする必要があります(シンボルにはソースが含まれていますか?)4番目は、GitHubからソースをプルできるようにする必要がありますか?どちらかが必要ですか?

まず、MainメソッドのCreateHostBuilderにブレークポイントを設定し、3番目のオプションを選択してアプリケーションを実行します。ブレークポイントに到達した後、「GenericHostBuilderExtensions.csが見つかりません」というメッセージが表示されるまで、コード(F11)にステップインし続けます。それを参照することはできますが、どこで見つけられるかわかりません。

もう一度試してみましょう。今回は4番目のオプションを選択します(3番目のオプションを選択解除します)。さて、ブレークポイントがヒットした後、VSはソースリンクで前述のファイルをダウンロードするように私に提案します。受け入れますが、結果は「ソースリンクエラー:Azure DevOps:すべてのアカウントの認証に失敗しました。「ファイル->アカウント設定...」を使用して、新しいアカウントを追加するか、認証情報を更新してください。さて、私は自分のMicrosoftアカウントでログインしていますが、他に何をすべきですか?

もう一度繰り返しますが、今回は3番目と4番目のオプションの両方を選択します。結果は同じです。

次に、別のソースリンクオプションを選択します:[Git Credential Managerにフォールバック...]で、最初からやり直します。同じ結果。

もちろん、私は広範囲にグーグル化し、かなりの時間をかけて解決策を見つけようとしましたが、何かが足りません。上記のオプションが正確に行うこと、および.NET Coreソースコードにステップインしてデバッグする方法についてのヘルプをいただければ幸いです。

4
Marko

すべての手順を実行しましたが、非同期コードのデバッグに問題があり、Webに回答がありません。

例えば;

 var user = await _userManager.FindByEmailAsync(request.Email);

デバッガーが行にあるときに[ステップイン]を押すと、VSはAsyncMethodBuilder.cs-> Future.cs-> TaskAwait.csに私を送信します。しかし、私はFindByEmailAsyncに入りたいと思います。

ここに関連する質問があります ソースリンクを使用してasp.netコア非同期メソッドをデバッグする方法?