2012-04-18 4 views
4

Использование Visual Studio 2010 для удаленной отладки C# .dll - получение .PDB-файла не соответствует - все же это абсолютно не из сборки ...............Использование Visual Studio 2010 для удаленного отладки C# .dll - получение .PDB-файла не соответствует - все же это абсолютно не из сборки

Новая информация: [[Эта проблема не разрешена. У меня три компьютера: a) XP sp3, b) XP sp3 и c) Vista sp1, я могу построить простейшую из тестовых программ на а) и в) и использовать окно модуля - выберите мой test5.exe и загрузите .pdb, который был создан при его создании - в тот же самый день, в то же время, в той же папке ... и все же Visual Studio говорит, что «соответствующий файл символов не найден в этой папке» - все попытки загрузить правильный .pdb сбой жалоба .... будь то: a) удаленная от b) или c) -или-c) удаленная от a) или b) --- ПОМОЩЬ! ]]

Я установил местоположение .pdb прямо и косвенно - не имеет значения ....

Я поставил настройки символов, чтобы быть убрав, что исходные файлы должны точно соответствовать ....

Я не вижу не заблуждается ....

Просто:


C:\POSWIN\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\obj\Debug\DBS.KGW.tst7.pdb: PDB does not match image. 
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\symbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\DBS.KGW.tst7.pdb: PDB does not match image. 
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\MicrosoftPublicSymbols\symbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\MicrosoftPublicSymbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 
C:\Projects\SP\DBS.KGW.tst7STUB\DBS.KGW.tst7\bin\Debug\MicrosoftPublicSymbols\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 
C:\WINDOWS\symbols\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 
C:\WINDOWS\DLL\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 
C:\WINDOWS\DBS.KGW.tst7.pdb: Cannot find or open the PDB file. 

+1

какое приложение это? Веб? WinForms? – Robbie

+0

Запускаете ли вы aspnet_merge или инструмент подписи после сборки? Вы уверены, что pdb в bin \ obj точно из одной сборки? вы пытались поместить pdbs на удаленный сервер - удаленная служба отладки (msvcmon) могла отправлять pdbs на ваш компьютер с удаленного сервера. Или попробуйте загрузить его явно при первой паузе break \ debug. –

+0

Где находятся ваши DLL и где находятся PDB? Какое приложение вы используете, WPF/IIS? –

ответ

1

Решение состоит в том, что для удаленных отладочных подключений существует два способа подключения, авторизации и несанкционированного доступа ... Для проблем с брандмауэром я по умолчанию был несанкционирован. Для VS 2010 C# решения жалоба - это просто .PDB не соответствует. Измучив все варианты, я мог подумать, что я пошел и воспроизвел мое простое тестовое решение на C++, интерфейс отличается и лучше, и есть предупреждение, когда вы устанавливаете это, чтобы вы не получили символы, если вы не находитесь в разрешенном соединении! ! - Как только я преодолею проблему с брандмауэром и увижу свои символы через авторизованное подключение к удаленному компьютеру, который отлаживается, я отправлю это подтверждение ...... Кстати, часто предупреждают, что при входе в систему через авторизованное подключение идентификатор пользователя и пароль для хоста и отлаживаемого компьютера должны быть одинаковыми, кроме того, пользователь на отлаживаемом компьютере должен иметь право «войти в систему», добавленное к его пользователю .....

+0

+1: почти невероятно, но я не имею никакого смысла не верить вам. Спасибо за объяснение и решение. Я не знаю, возможно ли это на SO, но постарайтесь пометить свой собственный ответ «tick» как принятый, так что другие узнают, что «случай закрыт» для вас. – quetzalcoatl

4

Несколько предложений:

  • В визуальной студии, в то время как вы привязаны к процессу, откройте окно отладки модулей, Ctrl+D, M (или Debug ->Windows ->Modules из меню) и найти DLL, которая вызывает проблемы. Щелкните правой кнопкой мыши и выберите Load Symbols From, а затем Symbol Path найдите правильный файл pdb и посмотрите, загружается ли он.
  • Если вы используете asp.net, вы можете попробовать очистить временную папку, поскольку она иногда вызывает проблемы, похожие на ваши. Эта папка должна быть расположена где-то вроде этого:

    bootdrive:\%windir%\Microsoft.NET\Framework\v2.0.5 0727\Temporary ASP.NET

В зависимости от вашей версии .net.

+0

Эта проблема не решена. У меня три компьютера: a) XP sp3, b) XP sp3 и c) Vista sp1, я могу создать простейшую из тестовых программ и использовать окно модуля - выберите мой test5.exe и загрузите .pdb, который был создан, когда он был создан - в тот же день, в то же время, в той же папке ... и все же Visual Studio говорит, что «соответствующий файл символов не был найден в этой папке» - все усилия по загрузке правильного .pdb завершаются неудачей, если не соответствует жалобе .... be это: a) удаленный от b) или c) -или-c) удаленный от a) или b) --- ПОМОЩЬ! – kevinwaite

+0

Робби, ты мужчина! Вы сделали меня лучшим разработчиком, потому что теперь я знаю окна модулей и знаю, как использовать его для правильной загрузки моих символов. У меня есть несколько ветвей кода, и я предполагаю, что это указывало на какой-то странный путь для него. Благодаря! – Jpepper

1

I имеют такую ​​же проблему, и решение было таким простым ...

В моем случае у меня есть два решения VS, первое - основное приложение с проектом .exe и вторым плагином .dll. Когда я пытался отлаживать проект dll, я получаю ошибку pdb, не соответствующую ошибке (в окне модуля).Причина в том, что pdb на самом деле не совпал, потому что:

Когда я тестировал первое решение, я скопировал DLL-файл из второго решения для отладки папки с .exe-файлом.
Затем, когда я попытался отлаживать второе (.dll) решение, он использовал .exe-файл из первого решения И ТАКЖЕ. DLL-файл в этом каталоге, но этот .dll был устаревшим и не соответствовал новому файлу pdb. Так что копирование нового .dll-файла из второго проекта в директорию .exe разрешило мою проблему.

+0

Оригинальная проблема уже решена, но спасибо за дополнительный случай! Ошибочные файлы и пути являются общей причиной этой ошибки. – quetzalcoatl