Точка останова 2008 года не будет достигнута. Для этого документа не было загружено ни одного символа - PullRequest
31 голосов
/ 03 марта 2011

Я изо всех сил пытаюсь преодолеть это препятствие, и я очень надеюсь, что кто-то на SO сможет помочь.

enter image description here

Когда я устанавливаю точку останова в моем библиотеке классов проекта.Это выглядит как нормальная точка останова.Когда я начинаю отладку своего решения, точка останова становится выдолбленной и имеет желтый треугольник с восклицательным знаком внутри.Когда я перемещаюсь по точке останова, отображается всплывающая подсказка: « В данный момент точка останова не будет достигнута. Для этого документа не было загружено никаких символов. »

Этот проект не является ASP.NETЭто просто приложение WinForms.

Я взял на себя существующее приложение WinForms с несколькими проектами в решении.У меня есть проект, собранный и работающий в режиме отладки.Я могу остановиться на контрольных точках в некоторых проектах, но я не могу достичь контрольных точек в других проектах, особенно в моем проекте типа библиотека классов .

Что я сделал до сих пор:

  • Я удалил все папки отладки и выпуска,
  • Я удалил папку obj,и впоследствии перестроил решение.
  • Я перезапустил IDE VS2008.
  • Я перезапустил свой компьютер.
  • Я проверил Configuration Manager на наличие решения, чтобы убедиться, что мой проект класса включен в сборку отладки, и это так.
  • Я проверил отладку / модули для dll, хотя я не пытаюсь ссылаться на dll.

Кроме того, я выполнил шаги по устранению неполадок, описанные в сообщениях SO:

в настоящий момент точка останова не будет достигнута, символы не загружены

VS 2010, NUNit и «Точка останова в настоящее время не будет достигнута.Для этого документа не было загружено никаких символов »

Точка останова в настоящее время не будет достигнута.Для этого документа не было загружено никаких символов.

Невозможно отладить - «Точка останова в настоящее время не будет достигнута.Для этого документа не было загружено никаких символов »

Исправление« Точка останова в настоящее время не будет достигнута.Для этого документа не было загружено ни одного символа. ”

Кроме того, я прочитал множество сообщений, найденных в Google в MSDN и других местах., ни один из которых не соответствует моим конкретным потребностям.

Некоторые из этих сообщений:

Visual Studio 2008 "Точка останова в настоящее время не будет достигнута. Символы не были загруженыдля этого документа "

Точка останова в настоящее время не будет достигнута.Для этого документа не было загружено никаких символов

Точка останова в настоящее время не будет достигнута.Для этого документа не загружены символы.

Проблема отладчика "В настоящий момент точка останова не будет достигнута. Для этого документа не было загружено никаких символов

В настоящий момент точка останова не будет достигнута. Для этого документа не было загружено никаких символов.

Все прочитанные мной посты были очень информативными, но ни одно из предложенных решений не соответствовало моим конкретным потребностям.Пожалуйста, дайте мне знать, если требуется дополнительная информация. У меня есть больше ссылок, которые я могу предоставить в качестве ссылок на то, что не сработало. А также дополнительные шаги, которые я предпринял, чтобы попытаться решить эту проблему.

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

Я поставил dim frm как form = new ProjectInQuestion.FormInQuestion

и

это теперь имеет загрузку сборки в отладке -> Windows-> Модули

Новая проблема более сложна, чем моя первоначальная проблема.kpoints выглядят хорошо, но пропускаются.В точке останова ошибок не обнаружено.

enter image description here

Ответы [ 13 ]

12 голосов
/ 07 сентября 2011

Это может быть старый вопрос, но я хотел ответить на него после того, как нашел решение этой самой проблемы, потому что это был один из наиболее полных вопросов, заданных в отношении этой темы.

Введение

Мой проект является приложением ASP.NET, но базовая проблема будет возникать и в WinForms. Проблема возникает, когда DLL отсутствует в выходных данных сборок. Однако это же исключение возникает, если DLL, на которую вы ссылаетесь, ссылается на другую DLL, отсутствующую в сборках. Из-за того, как операционная система загружает библиотеки DLL, ссылочная библиотека DLL должна находиться в пути среды, а не в ваших выходных сборках.

Проект A ссылается на DLL D. DLL D ссылается на DLL X. DLL D может быть в ваших выходных сборках. DLL X должна быть в вашем пути к среде.

Основной причиной этой проблемы является то, как операционная система загружает собственные библиотеки DLL во время выполнения. Собственные библиотеки DLL загружаются с использованием следующей логики, которая не включает в себя> Temporary ASP.net Files или папку apps / bin. Эта проблема также возникает в> любом приложении .Net, если собственная библиотека DLL не включена в папку / bin с файлом .EXE> или если библиотека DLL отсутствует в переменной среды Path.

Персональное решение

Я использовал DLL-библиотеку DivaAPIWrapper.dll (управляемая DLL для C #). Однако я знал, что для работы DivaAPIWrapper.dll необходим DivaAPI.dll (неуправляемый C ++). Я поместил DivaAPI.dll во все мои пути вывода, но я продолжал получать эту ошибку. Только после того, как я поместил DivaAPI.dll в путь к моей среде (C: \ windows \ Microsoft.Net \ Framework \ v2.0.50727), он заработал. Обратите внимание: ваш путь может отличаться, если вы используете более новую версию .NET Framework!

Полное решение от Джерри Ормана

См. Ссылку здесь: http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx

7 голосов
/ 28 октября 2012

Я также столкнулся с той же проблемой и нашел много решений из интернета, но решение работает для меня, перечислены ниже:

Это из-за моего приложения, сделанного в рамках версии 4.0, и я пытался прикрепить процесс с версией ниже v2.0 поэтому убедитесь, что ваша версия фреймворка с версией управляемого кода, как показано ниже.

enter image description here

4 голосов
/ 19 января 2012

Это недавно произошло со мной при подключении к запущенному процессу. Проблема заключалась в том, что параметры отладки были установлены на

Прикрепить к: Родной код

Для моего случая это должно было быть:

Прикрепить к: Управляемый код

3 голосов
/ 25 мая 2012

Одна вещь, которую я недавно обнаружил и сработала довольно хорошо !!!

Хостинговое приложение (вызывающее вашу dll для использования) должно иметь следующую строку:

<supportedRuntime version="v4.0"/>

в файле "WhwhatApplicationItIs.exe.config" внутри раздела <configuration>.

Пример: (см. «...» как файл внутри него и оставить как есть)

<configuration>
    ...
    <supportedRuntime version="v2.0.50727"/>
</configuration">

PS: попробуйте сопоставить эту версию с целевой структурой, установленной в свойствах вашего проекта. Я считаю, что 2.0.50727 - хорошая попытка для 3.5 Framework и 4.0 для 4.0 Framework.

Для меня это просто решило две разные DLL, которые я пытался отлаживать в разных приложениях.

1 голос
/ 20 января 2018

У меня такая же проблема на vs2010, я решил в шагах потока:

  1. Щелкните правой кнопкой мыши проект
  2. Выберите свойства
  3. Выберите c / c ++ -> General
  4. Установить формат отладочной информации на program Database(/ZI)
  5. Проверка компоновщика-> отладка. Создать Отладочную информацию - да.
1 голос
/ 19 февраля 2015

попробуйте это, В Vs 2008 выберите «Инструменты» -> «Параметры» -> «Отладка» -> «Общие» -> «Не проверено / отключено». Требуется, чтобы исходные файлы точно соответствовали исходной версии

.
1 голос
/ 18 ноября 2013

Надеюсь, это поможет ...

Я ссылался на библиотеку DLL, которая была в моей папке bin \ Release, хотя я находился в режиме отладки.

Я скопировал DLL в папку bin \ Debug, и когда я запустил VS, была достигнута точка останова.

1 голос
/ 21 августа 2013

Проверьте, не установлен ли режим Конфигуратора решений на панели инструментов (справа от кнопки «Выполнить») на «Отладка», а не «Отпустить»

1 голос
/ 23 мая 2012

У меня была такая же проблема с VS2008 в приложении Vb.net-форм, где я вызывал dll в другом проекте, загруженном в той же группе проектов. Я нашел это простое решение: я загрузил экземпляр в событие form_load, как Dim pmg As New PMGExport.PMGExportNeu.

1 голос
/ 16 апреля 2012

Убедитесь, что вы не меняли процессор, на котором вы собирались скомпилировать этот проект.У меня было, и когда я изменил его обратно, все снова заработало.Видимо, изменение в процессоре делает его «отличным от оригинала»

...