Я пишу расширение VS, которое должно знать полный путь к файлу, который в данный момент отлаживает пользователь, и я хочу поддержать сценарий, в котором исходный путь, записанный в pdb, неверен, и пользователю предлагается чтобы найти файл в другом месте.
Если я сделаю следующее:
1) Отладка библиотеки DLL, чья PDB указывает на файл кода в расположении A
2) Переместить файл кода в другое место, B
3) При появлении запроса в диалоговом окне «Открыть файл» укажите отладчику, чтобы найти код в расположении B
Затем файл открывается, и, похоже, Visual Studio «запоминает» это перенаправление и будет знать, что искать файл в местоположении B даже после его перезапуска.
Моя проблема в том, что объекты IDebugStackFrame2 / EnvDTE.StackFrame дают мне старый неверный путь к файлу кода - и я хочу правильный путь, чтобы я мог прочитать исходный код из него! Visual Studio предоставляет эту таблицу косвенных ссылок каким-либо образом?
Как я могу получить текст исходного файла?
P.S. Я пытался использовать метод VsShellUtilities.OpenDocument со старым, неправильным путем, но он выбрасывает метод «файл не найден».