ユーザーが現在デバッグしているファイルのフルパスを知る必要があるVS拡張機能を作成しています。また、pdbに書き込まれたソースパスが正しくなく、ユーザーが検索するように求められるシナリオをサポートしたいと考えています。他の場所にファイルします。
私が次のことをした場合:
1)PDBが場所Aのコードファイルを指すDLLをデバッグします
2)コードファイルを別の場所Bに移動します
3)[ファイルを開く]ダイアログでプロンプトが表示されたら、場所Bにあるコードを見つけるようにデバッガーに指示します。
次にファイルが開かれ、Visual Studioはこのリダイレクトを「記憶」しているようで、再起動した後でも場所Bでファイルを探すことができます。
私の問題は、IDebugStackFrame2 / EnvDTE.StackFrameオブジェクトの両方が、コードファイルの古い誤ったパスを提供することです。正しいパスが必要なので、そこからソースを読み取ることができます。Visual Studioはこの間接テーブルを何らかの方法で公開しますか?
ソースファイルのテキストを取得するにはどうすればよいですか?
PS VsShellUtilities.OpenDocumentメソッドを古い誤ったパスで使用しようとしましたが、ファイルが見つからないメソッドがスローされます。