web-dev-qa-db-ja.com

.NETソースコードをデバッグするための.csファイルが見つかりません

この MDSNウォークスルー に従って、.NETソースのデバッグを設定してみました。 「.NET Frameworkソースステッピングを有効にする」チェックと同様に、シンボルキャッシュが適切に設定されています。

しかし、その後、.NETコードにステップインするたびに、関連するcsファイルの場所を指定するよう求められます。エラーメッセージはYou need to find <filename>.cs to view the source for the current call stack frameおよびThe debugger could not locate the source file <filename>.csです。

ファイルを参照する(ただし、持っていない)か、逆アセンブリを表示する(ただし、それはしたくない)ように勧められます。

.NETソースコードにステップインする方法は?

52
JBSnorro

Tools-> Options-> Debugging-> General-> Enable source server supportを確認すると、すべてがうまくいきませんでした。同じことがあなたにも当てはまると思います

34
JBSnorro

私の場合、.Netフレームワークをデバッグしようとしていませんでしたが、同じエラーが表示されていました:。NETソースコードをデバッグするための.csファイルが見つかりません。そのため、以下の「コードだけを有効にする」オプションをオンにする必要がありました。
ツール->オプション->デバッグ->一般->自分のコードだけを有効にする

MSドキュメントごと:

Visual Studioを構成して、システム、フレームワーク、その他のユーザー以外の呼び出しを自動的にステップオーバーし、呼び出しスタックウィンドウでそれらの呼び出しを折りたたむことができます。

https://docs.Microsoft.com/en-us/visualstudio/debugger/just-my-code

78
dier

これにも1時間かかりました。最後に、設定->ツール->設定のインポートとエクスポート-> Resettをリセットして修正しました。

13
Stefan

ここでの回答はすべて、実際にソースコードに足を踏み入れるのではなく、ソースコードを無視/回避することについて述べています。

@JBSnorroは正しい軌道に乗っていますが、問題は、発生する可能性のあるすべての.NETシンボル/ソースをMicrosoftが公開していないように見えることです。それが意図的なものであるかどうかはわかりませんが、MSソースに足を踏み入れるには、すべてのアセンブリのすべてのバージョンを公開する必要があり、これは大きなロジスティックタスクです。

Tools-> Options-> Debugging-> General-> Enable source server supportは多くの場合に機能しますが、たとえば4.6.1のmscorlib.dllにはシンボルがないか、ソースが逆コンパイルされていることがわかりました。そのため、例としてDictionary.csTask.csのような一般的なソースコードに足を踏み入れることはできませんでした。 MSシンボルサーバーのソースとシンボルは常に変化するため、あなたがこれを読むまでに私の問題は解決するかもしれませんか?

JetbrainのRiderで同じソリューションをデバッグすると、すべての.NETアセンブリのすべてのクラスを問題なく表示およびステップスルーできます。しかし、VSでは、いくつかのクラスにしか足を踏み入れることはできませんが、他のクラスには足りませんか?

すべての.NETソースコードにステップインすることに本当にコミットしている場合は、JetbrainのDotPeekを使用して、.NETアセンブリをディスクの実際の.csファイルに逆コンパイルできます。次に、これを見ると、

Example of source code not found

これで、DotPeekを使用して、逆コンパイルしたソースコードをディスクで参照できます。プロジェクトで参照するのと同じアセンブリバージョンを必ず逆コンパイルしてください。そうでない場合、シンボルは正しいソース行番号と一致しない可能性があります。

代わりに、この「ソースが見つかりません」が常に表示されないようにしたいだけで、ソースがないコードにステップインする必要がない場合は、@Alex Shermanの答えを読んでください。問題のファイルが含まれているアセンブリを把握し、そのアセンブリ名を除外リストに追加する必要があります。

考えてみると、私はRider over VSのファンではありません。 Riderは未だに未加工であり、VSが備えているツールのクレイジーな量に欠けています。しかしながら!!このような場合、雑草をより深く掘り下げることができるとわかっている場合、サイドバイサイドでインストールするのが好きです。

2
Eat at Joes

同じ問題を抱えていたが、上記の解決策のいずれも私が問題を解決するのを助けなかった。 VS 2017で発生しました。VisualStudio 2019でプロジェクトを実行すると、すべてが機能しました。したがって、他の環境で実行してみてください。この答えが誰かを助けることを願っています

1
OlegI

Cleanビルド前のソリューションで問題が解決しました。

ナビゲートしてクリックするだけです:

  1. Build-> Clean Solution
  2. Build-> Build Solution (Ctrl + Shift + B)
0
Shahar Shokrani

エラーが「nullable.cs」または他のコアソースファイルの検索からのものである場合:

Debug -> Options -> Debugging -> Symbolsを使用し、下部のSpecify Excluded Modulesを使用して、特定のモジュールのシンボルを無効にできます。

これは、do "Just My Code"を無効にして、PDBがある他のアセンブリにステップインする場合に役立ちます。 Visual Studioにはmscorlib.dllのシンボルが付属していますが、ソースを含めるnotしているので、場合によっては「nullable.cs」または他のコアソースファイルを探すことがあります。

0
Alex Sherman

ここからソースコードをダウンロードしてダウンロードできるので、適切にデバッグできます。 https://referencesource.Microsoft.com/#mscorlib,namespaces

0
itdoesntwork