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


139

Я не могу избавиться от этого в моем веб-проекте VS 2008 при отладке. Я проверил, что он находится в режиме отладки для рассматриваемого не веб-проекта и находится в активном (отладка). Удалены все элементы в моей временной папке .NET 2.0 в Windows. Не знаю, что еще здесь делать.

Ответы:


187

Попробуйте отключить «Включить только мой код» в Инструменты / Параметры / Отладка / Параметры.


Я сделал это, и это сработало. Я смог использовать точки останова и пошагово выполнять код. Я не понимаю. Почему это сработало? (Я отлаживал управляемый модуль C ++, на который ссылалась служба Win, используя VS2010)
tzup

У меня была эта проблема, и ваше решение сработало для меня. Благодарность!
Колин О'Делл,

5
Это работает, но может вызывать некоторые нежелательные побочные эффекты при отладке: blogs.devsource.com/devlife/content/net_general/…
user276648

2
В VS2010 этот флажок находится в разделе «Отладка»> «Параметры и настройки», затем в разделе «Отладка»> «Общие»
Cookie

Это работает из-за перестройки опций? В чем дело. Я решил проблему, но почему?
Quantum

84

У меня была та же проблема, и я обнаружил, что не выводил информацию об отладке в своей сборке. Если вы щелкните проект правой кнопкой мыши и перейдете в «Свойства», затем выберите вкладку «Сборка», внизу страницы есть кнопка «Дополнительно ...», которая отобразит ваши настройки для вывода отладочной информации. Установите его на «полный», и ошибка должна исчезнуть.

введите описание изображения здесь


1
Это правильный ответ. Вы должны выводить «полную» отладочную информацию, если хотите отлаживать приложение локально в режиме разработки. Вам следует сделать это вместо ответа «Включить только мой код», поскольку этот ответ может иметь непредвиденные побочные эффекты (как указано выше).
Tod Thomson

1
@Tod Thomson, я не уверен, почему вы утверждаете, что это правильный ответ, поскольку я вижу сообщение только сейчас при отладке своего веб-приложения и попытке войти в библиотеку классов, очень похожую на конфигурацию, описанную в вопросе. Моя настройка отладочной информации заполнена, и у меня нет оснований полагать, что она когда-либо была другой.
Р. Шрерс

1
@ R.Schreurs Я перепробовал все остальное на этой странице, и единственное, что у меня сработало, - это этот ответ. Если это не сработает, попробуйте что-нибудь еще здесь / дайте свой ответ.
Тод Томсон

Это ошибка Microsoft. Не говори «должен». Если только вы не говорите: «Ошибка должна исчезнуть, но это Microsoft, поэтому вам следует переосмыслить свою жизнь»
user1566694

24

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

отключить

Я владелец проекта и знаю, что он был построен с использованием отладочной информации, а также без оптимизаций. Кроме того, я никогда не был счастлив выбрать отключение предупреждения в качестве своего первого выбора. Скрытие / игнорирование этого предупреждения может стать проблемой в будущем сеансе отладки.

Поскольку это началось только после того, как я подписал сборку , это подсказало мне мое быстрое решение: временно удалить строгое имя моей DLL (и использование EXE). Вуаля! Задача решена.

Лучшее долгосрочное решение могло бы принять форму добавления действия после сборки для обновления GAC. чтобы в нем была последняя версия подписанной DLL.

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


4
Я был в аналогичной ситуации с вами, но выбрал легкий выход ... Я удалил программу, которая помещала эту DLL в GAC, потому что это была просто старая версия того, что я отлаживал.
SeeMoreGain

2
Также +1 за рекомендацию исправить источник проблемы, а не просто включить обходной путь, как и все другие, предлагающие
снять отметку

17

решено. Удалены все вхождения (все проекты) рассматриваемой dll.


1
Я закрыл все сеансы VS / VWD, в которых были открыты упомянутые проекты и мое активное решение. Затем я удалил КАЖДЫЙ экземпляр проблемных dll и их сопутствующих pdbs. Затем я удалил все во временном местоположении веб-сайта отладки в структуре .NET framework (для этого проекта это был C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files [myWebsite]). Это дало мне ошибку «файл используется» в одной из более ранних версий, пока я не закрыл VWD. Затем я повторно открыл проект и исправил все выдающиеся ошибки и предупреждения в коде проекта. Только тогда ошибка исчезла.
BH

14

VS2012, очистка и восстановление устранили проблему для меня. «Свойства» -> «Сборка» -> Оптимизировать код не отмечен. «Свойства» -> «Сборка» -> «Дополнительно» -> Информация об отладке: Полная


надо ли менять настройки
kbvishnu

У меня это сработало при отладке надстройки Visual Studio 2010. Ранее было установлено значение none.
Sabuncu

Не сработало для меня, но после удаления папок bin и obj решение для очистки и восстановления снова сработало :)
QMaster


7

Предположение, что VS 2008 неправильно перестраивает dll.

1) Удалите все вхождения dll

2) Восстановить решение

И это должно исправить.


Я удалил каталог bin своего веб-приложения, а затем перестроил все. Это исправило!
Captain Sensible

6

Проверьте параметры конфигурации сборки. Убедитесь, что оптимизации выключены и определена константа DEBUG.


Сборка выбрана, и оптимизация определенно отключена.

6

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


После нескольких часов поиска в Интернете, пробуя все, с чем я сталкивался, это сработало. Что-то нужно кешировать?
Chris R

6

У меня тоже возникает эта проблема, по какой-то причине это повторялось 3 или 4 раза; Я думаю, что это должно быть ошибка Visual Studio 2005 (или, по крайней мере, моя установка).

Это срабатывало каждый раз: чтобы исправить это, я

  1. Щелкните мое решение правой кнопкой мыши и выберите Свойства.
  2. Откройте Configuration Manager.
  3. В раскрывающемся меню выберите «Отладка» (если он еще не выбран).
  4. Снимите флажок СТРОИТЬ. Тогда еще раз проверьте это.
  5. Восстановите решение.

4

Инструменты> Параметры> Отладка> Символы> Указать исключенные модули посмотрите, что если dll или exe в списке исключенных модулей


3

По крайней мере, для не веб-приложений это работает:

От: http://www.stellarpc.com/articles/board.aspx?id=40

2 - Разрешить отладку ...

Из-за характера, в котором одна из сборок была построена в вашем приложении, вам потребуется изменить несколько параметров, чтобы код мог обрабатываться отладчиком Visual Studio.

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

1) Оптимизация - снимите флажок "Включить оптимизацию"

2) Создать отладочную информацию - убедитесь, что для параметра установлено значение «Полный».


Интересно ... Мои проекты настроены таким образом, и даже с этой конфигурацией сообщение все еще появляется. Так что это еще не окончательное решение
Джуниор Майе

3

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

c: \ Пользователь \ имя пользователя \ AppData \ Local \ Assembly \ dl3

Это было в Win7-64, но будет похоже на другие ОС Windows. Я удалил все найденные там копии и больше не получаю сообщения. Мне не нужно было снимать флажок «Включить только мой код».

Кроме того, это было для приложения WPF, но я наткнулся на эту ветку в своем поиске, поэтому, надеюсь, это поможет кому-то другому.


3

Мне удалось решить эту проблему, выполнив следующие действия:

  1. Щелкните правой кнопкой мыши решение (не проект) и выберите «Свойства».
  2. На левой панели выберите «Свойства конфигурации».
  3. На правой панели выберите «Отладка» в столбце «Конфигурация» вашего проекта.

Если вы не видите решение в списке в обозревателе решений, выполните следующие действия:

  1. В строке меню перейдите в Инструменты -> Параметры
  2. На левой панели выберите «Проекты и решения» (вам может потребоваться установить флажок «Показать все настройки» в нижней левой части окна.
  3. На правой панели установите флажок "Всегда показывать решение".

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


2

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


Я тоже отчаянно нуждаюсь в решении. Он даже не может создать файл pdb.
xar

2

У меня была такая же проблема с моим веб-проектом в Visual Studio 2010, и, наконец, я нашел причину, по которой я получаю это сообщение. Что я сделал, так это изменил существующую опцию отладки в Visual Studio:

  • Перейдите в Инструменты-> Параметры-> Отладка-> Символы-> Все модули.
  • Установите переключатель "если не исключено"
  • Щелкните ссылку «Указать исключенные модули», затем удалите библиотеку DLL, которую требуется отладить.

В моем случае это был файл моей веб-библиотеки ...


2

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

Решение? Легко. Скопируйте созданное решение на компьютер, на котором размещена удаленная отладка, и запустите его локально.


2

Если бы это случилось со мной в проекте VS 2010 winForms. Видя, что у большинства людей здесь есть веб-проекты, я думаю, что это связано с доступом к папке, в которой хранится проект. Я говорю это, потому что, когда у меня возникла эта проблема, Google Диск синхронизировал папку, в которой я храню свои проекты. Похоже, просто отключение синхронизации не решает проблему.

Мое решение похоже на один из ответов выше:

  • Пошел в "Свойства проекта> Компиляция> Расширенные параметры компиляции"
  • Проверено "Включить оптимизацию"
  • Установите "Общая информация об отладке:" на "Нет".
  • Не установлен флажок "Определить константу DEBUG"
  • И нажал ОК
  • Затем вернулся и вернул параметры в исходное состояние.

Надеюсь, это поможет кому-то, поскольку кажется, что это все еще происходит.


2

Выполните следующие действия: (первая остановка отладки)
1: щелкните правой кнопкой мыши имя решения проекта или проект -> Свойства
2: в разделе « Свойства конфигурации» выберите диспетчер конфигурации
3: измените конфигурацию для отладки и нажмите кнопку « Закрыть»
4: Изменить конфигурацию для отладки и нажать « Применить» - > ОК
Теперь перестройте решение ....!


1

Для меня установка флажка «Оптимизировать код» в свойствах проекта, сохранение, снятие отметки и повторное сохранение сделали это за меня.

Отключение «Включить только мой код» также сработало, но это был скорее обходной путь, чем исправление, поскольку мне не нужен этот параметр.


1

У меня была такая же проблема, но с другой причиной и решением. Окно было таким же, как показано Густаво (выше), но путь находился в: "\ users \ zzz \ AppSettings ..." (где zzz - имя пользователя Windows)

У меня был надстройка Excel - я тестировал установку надстройки, поэтому у меня была установлена ​​копия с помощью функции установки VS. VS явно пытался отладить как установленную копию, так и копию, которую я только что запустил, и не смог найти символы отладки в установленной копии.

Ни одно из вышеперечисленных решений не помогло (без побочных эффектов),

РЕШЕНИЕ: сработало удаление надстройки и удаление файлов вручную в настройках приложения.


0

Вы упомянули, что это веб-проект ... у вас есть

<compilation debug="true />

в вашем web.config?


0

У меня была такая же проблема после сборки с конфигурацией Release. Оказалось, что когда я снова переключился на Debug, VS не обнаружил никаких различий, поэтому он не обновлял файлы .dll и .pdb в папке bin.

Вот что у меня сработало:

  1. Запустите iisreset (чтобы очистить временные папки)
  2. Сохраните web.config (чтобы заставить VS фактически перестроить)
  3. Восстановить при отладке
  4. Начать проект

Почему вы просто не использовали команду «Перестроить» в меню сборки? Это заставляет перестраивать все модули независимо от того, обнаруживаются изменения или нет.
Рон

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


0

Мой случай следующий: веб-сервис ссылается на lib1.dll. Позже я удалил ссылку, так как она больше не использовалась. Однако lib1.dll остался в папке bin. Поскольку ссылка на библиотеку отсутствует, действия Rebuild и Clean не помогли. После ручного удаления lib1.dll из папки bin я избавился от этого сообщения.


0

Если вы публикуете в IIS и не используете встроенный веб-сервер или IIS Express, убедитесь, что настройки вашего профиля публикации находятся в режиме отладки. В vs 11 по умолчанию он находится в режиме выпуска.


0

Чтобы добавить, я просматривал этот блог, чтобы найти решение той же проблемы, с которой столкнулся. К сожалению, упомянутые выше решения мне не помогли. Наконец я понял, что устанавливал свои биты (вместе с .pdb) через установщик и явно устанавливал разрешение в папке установки.

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

Как только я снял флажок «Включить только мой код» и удалил настройки разрешений из установщика, VS начал загружать модуль.


0

Единственная конфигурация, которая сработала для меня, была следующая

Проект -> (Ваш проект) Свойства -> Вкладка «Отладка» убедитесь, что для параметра «Конфигурация» задано значение «Активно (отладка)». В разделе «Невозможные отладчики» установите флажок «Включить отладку неуправляемого кода».


0

Я создаю службу Windows, и вот что у меня сработало:

  • Удалите службу.
  • Откройте командную строку и перейдите в c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
  • installutil C: \ MyFantabulusWindowService \ bin \ Debug \ MyFantabulusWindowService.exe

Величие достигнуто!


0

Пример: тестирование сборки с помощью консольного проекта в разработке SharePoint - если вы занимаетесь разработкой SharePoint и видите это предупреждение в VS, убедитесь, что вы развернули сборку SP в GAC, прежде чем тестировать консольное приложение, ЕСЛИ в вашем основном проекте SP есть необходимые вам методы. вызовите в консольном тестовом приложении.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.