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

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

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

Я установил местоположение .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.


person kevinwaite    schedule 18.04.2012    source источник
comment
что это за приложение? сеть? винформы?   -  person Robbie    schedule 18.04.2012
comment
Запускаете ли вы какой-либо инструмент aspnet_merge или подписывания после сборки? Вы уверены, что pdb в bin\obj точно из той же сборки? Вы пытались поместить pdbs на удаленный сервер - служба удаленной отладки (msvcmon) могла отправить pdbs на ваш компьютер с удаленного сервера. Или попробуйте загрузить его явно при первой паузе перерыва\отладки.   -  person Alexey Shcherbak    schedule 18.04.2012
comment
Где находятся ваши DLL и где PDB? Какое приложение вы делаете, WPF/IIS?   -  person Matthew Bonig    schedule 18.04.2012
comment
Я не мог заставить это работать на всю жизнь. Наконец-то я заработал, взяв DLL и PDB с моей машины разработчика и перезаписав dll и pdb удаленных компьютеров. Теперь символы загружаются, и я могу отлаживать. Я попытался создать свое приложение в режиме выпуска и скопировать pdb-файл выпуска в удаленную систему, но это все равно не сработало.   -  person The Muffin Man    schedule 27.03.2015


Ответы (3)


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

  • В Visual Studio, пока вы подключены к процессу, откройте окно отладки модулей, 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.

person Robbie    schedule 18.04.2012
comment
Эта проблема не решена. У меня три компьютера: а)XP sp3, б)XP sp3 и в)Vista sp1, я могу собрать простейшую из тестовых программ, а в окне модуля -- выбрать мой test5.exe и загрузить .pdb, который был создан при он был создан - та же дата, то же время, та же папка... и все же Visual Studio сообщает, что соответствующий файл символа не был найден в этой папке - все попытки загрузить правильный .pdb терпят неудачу с несоответствующей жалобой.... будь то: а) удаленный к б) или в) -или- в) удаленный к а) или б) --- ПОМОГИТЕ! - person kevinwaite; 19.04.2012
comment
Робби, ты мужчина! Вы сделали меня лучшим разработчиком, потому что теперь я знаю об окнах модулей и знаю, как использовать их для правильной загрузки моих символов. У меня есть несколько ветвей кода, и я думаю, что это указывало на какой-то странный путь. Спасибо! - person Jpepper; 20.01.2015

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

person kevinwaite    schedule 19.04.2012
comment
+1: почти невероятно, но мне нет смысла тебе не верить. Спасибо за объяснение и решение. Я не знаю, возможно ли это на SO, но попробуйте отметить свой ответ «галочкой» как принятый, чтобы другие знали, что «дело закрыто» для вас. - person quetzalcoatl; 23.08.2012

У меня такая же проблема, и решение было таким простым...

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

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

person icl7126    schedule 22.08.2012
comment
Исходная проблема уже решена, но спасибо за дополнительный случай! Частой причиной этой ошибки является ошибка в файлах и путях. - person quetzalcoatl; 23.08.2012