Почему загруженная dll отсутствует в списке модулей Visual Studio?

в настоящее время я охочусь за ошибками и должен отлаживаться в определенной dll в конфигурации выпуска в Visual Studio 2005. В какой-то момент я закрыл решение, сделал некоторые другие вещи, и перезарядил его. С этого момента моя точка останова не попадает, и я получаю печально известный " никакие символы не были загружены..." сообщение. Поэтому я открыл окно "модули", и dll, которую я хочу отладить, больше не отображается в списке, поэтому я не могу загружать символы вручную. Приложение ведет себя нормально, поэтому я абсолютно уверен, что dll должна быть загружена для выполнения определенных функций. Конечно, если я переименую dll и запустите приложение, оно больше не работает, поэтому оно также должно быть правильной dll.

Я попытался установить проект dll как проект запуска и команду для выполнения в exe приложения и запуска приложения из-за пределов visual studio, а затем присоединения к процессу, все безрезультатно.

вопрос в том, почему dll не появляется в список загруженных модулей, хотя он должен быть загружен? Я не могу придумать никаких других изменений, которые я сделал, которые могли бы вызвать это, я что-то упускаю? (Может быть, что-то действительно очевидное?)

любая помощь приветствуется!

3 ответов


Я столкнулся с аналогичная проблема после переноса проекта с одного компьютера на другой. Я просто объясню что я обнаружил и Как я это исправил, и вы можете определить, соответствует ли он Вашей проблеме и решению.

  1. рабочий компьютер, на котором я написал приложение, содержал a .dll-файл, на который ссылалась моя программа. После перемещения приложения на мой домашний компьютер приложение больше не может найти .dll-файл он ранее ссылался, потому что файл больше не был там.

  2. приложение скомпилировано и запущено даже без указанного ресурса (.dll-файл), поскольку ранее скомпилированная сборка (папка отладки) содержала свою собственную копию .dll файл и другие ресурсы. Проще говоря, это старая сборка сборки, которая работает, а не текущее приложение, над которым вы работаете. Вот почему эта ошибка имеет тенденцию приостанавливать окно конструктора и бросать ошибка после запуска приложения.

Я бы посмотрел на следующее:

a) под Обозреватель идем в ссылки и щелкните правой кнопкой мыши отсутствует опорного узла и выберите свойства. В поле свойства обратите внимание на путь ссылочного ресурса. ресурс все еще находится по этому пути?

b) проверьте папку отладки для копии ресурса, который вы ищете. Если ресурс вот, сделайте копию и сохраните его на рабочем столе. Если это нет, получить файл из исходного источника.

c)В Разделе Обозреватель Решений, щелкните правой кнопкой мыши'свойства' и 'открыть'. В появившемся меню выберите 'ресурсы ' слева и вверху нового окна похоже, вы должны увидеть 'Добавить Ресурс ' С небольшой стрелкой вниз. Нажмите кнопку со стрелкой идобавить существующий файл и затем выберите файл. Если вы этого не видите, вам может потребоваться изменить просматриваемый файл из небольшого раскрывающегося списка над кнопками "открыть" и "отмена". После того, как файл находится, он должен создать новую папку в обозревателе решений под названием "ресурсы". Теперь этот файл является неотъемлемой частью вашей применение, а не просто ссылка на него.


  1. использовать процесс Explorer чтобы проверить, загружена ли dll или нет.

  2. при присоединении процесса убедитесь, что вы включаете как "собственный", так и "управляемый" тип кода (в опции выбора типа кода).

см. Также этот вопрос: Visual Studio не загружает модули при подключении к процессу


У меня была такая же проблема сегодня с Visual Studio 2008. Я использовал простой тестер для тестирования нового метода в сборке. Поэтому добавил ссылку на мою сборку я написал код для загрузки сборки и вызова нового метода, сборки, все в порядке. Но во время выполнения отладчик выдаст исключение, говорящее, что новый новый метод не существует, и окно модулей было пустым.

оказывается, сборка, которую я изменял, была в GAC и использовала вместо Новой в моем каталог сборки.