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

<p>c # настольное приложение на экспресс издание. сработало, затем не сработало 5 секунд спустя.</p><p>я попробовал следующее.</p><ul> <li>убедитесь, что конфигурация отладки, флаг отладки и полная информация отладки установлены на всех сборках.</li> <li>удалите все папки bin и obj и все библиотеки dll, связанные с проектом, со всей моей машины.</li> <li>воссоздать проекты, вызывающие проблему с нуля.</li> <li>перезагружать.</li> </ul><p>у меня есть два проекта winforms в решении. один из них загружает отладочную информацию, другой - нет. они оба ссылаются на сборку, в которой я пытаюсь получить отладочную информацию точно таким же образом в файле проекта. есть идеи?</p><hr><p>я хочу добавить здесь, в основном для себя, когда я возвращаюсь к рассмотрению этого вопроса, что символы не загружаются до тех пор, пока не будет загружена сборка, а сборка не будет загружена до тех пор, пока она не потребуется. если точка останова находится в библиотеке, которая используется только в одной функции в вашей основной сборке, символы не будут загружены (и она покажет точку останова как не достигнутую), пока эта функция не будет вызвана.</p>

<p>начните отладку, как только вы достигли точки останова или использовали <code>debug > break all</code>, используйте <code>debug > windows > modules</code>. вы увидите список всех сборок, которые загружены в процесс. найдите тот, для которого вы хотите получить отладочную информацию. щелкните правой кнопкой мыши и выберите «символ загрузки информации». вы получите диалог, в котором перечислены все каталоги, в которых он искал файл .pdb для сборки. проверьте этот список по фактическому местоположению .pdb. убедитесь, что он не находит старый.</p><p>в обычных проектах assembly и ее файл .pdb всегда должны копироваться с помощью ide в ту же папку, что и ваш .exe. папка bin\debug вашего проекта. убедитесь, что вы удалили один из gac, если вы играли с ним.</p>

<p>сначала попробуйте перестроить проект, щелкнув правой кнопкой мыши проект> перестроить если это не сработает, попробуйте очистить проект (щелкните правой кнопкой мыши проект> очистить).</p><p>если это не сработало, проверьте это:</p><ol> <li>щелкните правой кнопкой мыши ваш<strong> проект </strong></li> <li>выберите<strong> [свойства] </strong></li> <li>выберите<strong> [build] </strong>вкладка</li> <li>убедитесь, что<strong> [определить постоянную debug] </strong>и<strong> [определить постоянную trace] </strong>проверены</li> <li>нажмите кнопку<strong> [дополнительно] </strong>в нижней части вкладки «сборка»</li> <li>убедитесь, что<strong> [debug info:] </strong>установлено на<strong> [full] </strong></li> <li>нажмите<strong> [ok] и перестройте </strong>проект ;-)</li> </ol><p>(шаг 6 генерирует файлы .pdb, это символы отладки)</p>

<p>просто что-то простое попробовать - возможно, вы уже пробовали это. щелкните правой кнопкой мыши решение в обозревателе решений, выберите<strong> «очистить решение», при этом удаляются все скомпилированные и временные файлы, связанные с решением </strong>.</p><p>перестройте решение и попробуйте снова выполнить отладку.</p><p>у меня также были проблемы с точками останова нескольких проектов в решении - некоторые скомпилированы как x86, некоторые как x64.</p>

<p>отключите опцию «просто мой код» в настройках «отладка/общие».</p>

<p>перекрестная публикация этого исправления от <a href="https://stackoverflow.com/users/332176/hans-k">hans k</a> , который я нашел в аналогичной теме <a href="https://stackoverflow.com/questions/2301216">>> здесь <<</a> :</p><blockquote> <p>щелкните правой кнопкой мыши по решению -> свойства</p> <p>посмотрите под общие свойства -> startup project</p> <p>выберите несколько проектов запуска</p> <p>выберите начать действие над проектами, которые нужно отладить.</p> </blockquote>

<p>выбранный ответ привел меня к решению моей проблемы. но мне нужно сделать еще несколько вещей:</p><p>даже с выбранным «отладка» в раскрывающемся списке:</p><p><img src="https://i.stack.imgur.com/5je9f.png" alt="enter image description here"></p><p>а в проекте properties> build:</p><p><img src="https://i.stack.imgur.com/l3e5v.png" alt="enter image description here"></p><p>visual studio не загружал символы в конкретный проект. таким образом, в этом раскрывающемся меню я выбрал «диспетчер конфигурации» и увидел, что параметры моего веб-проекта были неверными</p><p><img src="https://i.stack.imgur.com/lfwoe.png" alt="enter image description here"></p><p><img src="https://i.stack.imgur.com/avdfq.png" alt="enter image description here"></p><p>затем я установил для этого значение «debug», и он начал генерировать файл <code>.pdb</code>. <strong>но</strong>мне нужно вручную скопировать pdb и dll и поместить в папку, которую ищет vs (вот где мне помог выбранный ответ):</p><p><img src="https://i.stack.imgur.com/xm42b.png" alt="enter image description here"></p>

<p><code>debug</code>> <code>windows</code>> <code>modules</code> чтобы увидеть, какие модули были загружены, направьте меня в правильном направлении.</p><p>в моем случае iis экспресс, похоже, загружал другое dll из временных файлов asp.net.</p><p>решение?</p><ol> <li>перейдите к <code>c:\users\<your user>\appdata\local\temp\temporary asp.net files\vs</code></li> <li>удалить все в этом каталоге!</li> </ol>

<p>я смог исправить ошибку, просто установив опцию в «присоединить к процессу» на «автоматически определять тип кода для отладки», как показано на прикрепленном скриншоте.</p><p>просто следуйте инструкциям ниже:</p><ul> <li>перейти к<strong> отладка </strong>из строки меню </li> <li>нажмите на<strong> присоединить к процессу </strong> </li> <li>рядом с параметром<strong> присоединить к </strong>, нажмите кнопку<strong> выбрать </strong> </li> <li><strong> выберите тип кода </strong>появится окно </li> <li>теперь выберите параметр<strong> автоматически определить тип кода для отладки </strong>и нажмите кнопку ок.</li> </ul><p><img src="https://i.stack.imgur.com/donoe.png" alt="fixed debugging error"></p>

<p>проверьте, отсутствует ли ваш файл .pbd в папке bin/debug. если это так, перейдите в «свойства» вашего проекта, выберите «построить», а затем «дополнительно» в нижней части. в появившемся окне выберите «полный» в разделе «отладочная информация». это была моя проблема, и я решил ее.</p><p> <a href="https://i.stack.imgur.com/ov4ef.png"> <img src="https://i.stack.imgur.com/ov4ef.png" alt="showing where to find the setting"> </a> </p>

<p>иногда, даже несмотря на то, что выдает эту ошибку, <code>breakpoint</code> по-прежнему получает удар, поэтому просто игнорируйте ошибку. это происходит довольно часто в <code>views</code> <code>mvc web app</code>.</p>

<p>в моем случае «оптимизировать код» было проверено в свойствах моего проекта. это заставило vs видеть мою сборку как «не мой код» и, в свою очередь, не загружало символы для нее.</p><p>решением было снять это. <a href="https://i.stack.imgur.com/olqhc.jpg"> <img src="https://i.stack.imgur.com/olqhc.jpg" alt="location of optimize code checkbox"> </a> </p>

<p>просто проверьте, находится ли ваше решение в режиме выпуска. </p>

<p>попробуйте запустить visual studio в качестве администратора в windows.</p>

<p>в моем случае я пытаюсь отладить в режиме выпуска. как только я переключаю его в режим отладки. работает</p>

<p>вам нужно включить «генерировать отладочную информацию» в настройках компилятора</p>

<p>мы нашли причину нашей проблемы. этот код использовал атрибут «codebehind» в директиве page файла .aspx вместо атрибута «codefile» (asp.net 2.0 и выше). после нескольких дней отчаяния простой поиск и замена решили проблему.</p>

<p>параметр «начать отладку, отладка + модули windows +» не существует в выпуске microsoft visual studio express 2013.</p><p>снятие отметки<strong> «использовать управляемый режим совместимости» </strong>в меню «параметры инструментов» отладка исправляет это.</p>

<p>я перепробовал все, что упомянуто выше, но ничего не получалось. <em> [очистить решение, проверить файлы pdb и т.д.] </em></p><p>даже публикация того же решения не решила проблему.</p><p>затем я вернулся к тому, что я обычно делаю, чтобы решить (обмануть эту упрямую visual studio)</p><p><strong> все, что я сделал, это сделал преднамеренное изменение в коде и опубликовал решение. затем я отменил изменение и опубликовал снова. </strong></p><p>вуаля [pdb-файлы, избавленные от злых духов] .. не умное решение, но это сработало ..: - |</p>

<p>вещи, которые нужно проверить, чтобы быть понятным: убедитесь, что у вас установлена конфигурация «отладка», а не «выпуск». вы можете отлаживать стартовый проект в режиме «release», но не можете ссылаться на библиотеку классов.</p>

<p>ни один из этих ответов не решил мою проблему. я попробовал еще одну вещь, основанную на том факте, что проект с остановкой на самом деле не был загруженным проектом. я обнаружил, как ганс пассант написал, что .dll, где я хочу остановить отладчик, и связанные файлы .pdb, скопированные рядом с файлом .exe. у этих файлов была более старая дата, поэтому я подумал, что они не обновлялись во время выполнения. я вручную удалил их, visual studio создала другую пару и поместила эту новую пару рядом с .exe. теперь точки останова работают!</p><p>возможно, visual studio не может скопировать и заменить существующие файлы (.dll и .pdb) рядом с .exe, поскольку там есть другие. так что, если я удалил вручную, то vs может создать новый рядом с .exe.</p><p>я думаю, что другие изменения (проверки и так далее - из других ответов) вызвали что-то, и visual studio скопировала и заменила dll и pdb из папки проекта в папку рядом с exe, так что это было решением.</p><p>я думаю, что основной причиной проблемы является то, что visual studio использует другой файл во время выполнения, а не файл из проекта, с остановкой.</p><p>может быть, этот ответ поможет кому-то!</p>

<p>свойства проекта (затем выберите конфигурацию сборки)> вкладка «сборка»> «дополнительно»> «отладочная информация» (раскрывающийся список)</p><p>установите «все» или «только для pdb», затем перестройте</p>

<p>только веб-приложения (iis express):</p><ul> <li>щелкните правой кнопкой мыши iis экспресс-лоток и закройте iis.</li> <li>чистый раствор</li> </ul><p> <a href="https://i.stack.imgur.com/bt4ol.jpg"> <img src="https://i.stack.imgur.com/bt4ol.jpg" alt="iis tray"> </a> </p>

<p>вместо того, чтобы делать все эти вещи просто </p><h1><strong><em> закрыть и снова открыть </em></strong></h1><p>решение это решит проблему</p>

<p>это заняло у меня некоторое время, пробовал другие варианты выше и по какой-то странной причине отладка перестала работать.</p><blockquote> <p>инструмент -> параметры -> отладка -> общие -> (снимите флажок) параметр «требовать, чтобы исходные файлы точно соответствовали исходной версии»</p> </blockquote>

<p>у меня была похожая проблема, и я сделал следующее: debug => options => general => снимите флажок «включить только мой код» это сработало для меня ..</p>

<p>я интегрировал приложение c # со статической библиотекой, используя vs10 - что я новичок в. я написал управляемый код dll для взаимодействия с ними. я мог бы установить точки останова везде, кроме статической библиотеки. я получил сообщение, описанное выше - для этого документа не было загружено никаких символов. я попробовал многие из предложений выше. я мог видеть, что символы не загружались. наконец я заметил флажок «отладка конфигурации», «включить отладку неуправляемого кода». это позволило мне установить точки останова в статических функциях lib.</p>

<p>у меня также была та же проблема, что я перестраивал все решение (включая проекты с ссылками) в x86 (или x64)</p><p>несмотря на то, что я установил все свои проекты на x86 из configuration manager (build-> configmanager), некоторые из моих проектов не были установлены на x86.</p><p>так что просто чтобы убедиться, что щелкните правой кнопкой мыши на проекте и следуйте </p><blockquote> <p>проект -> свойства -> вкладка отладки, проверьте конфигурацию и платформу.</p> </blockquote>

<p>я внимательно прочитал все ответы выше, но ни один из них не решил мою проблему.</p><p>в моем случае я собирал библиотеку классов (dll). кажется, что никакие модули не загружаются в debug -> modules, поэтому я даже не мог загрузить символы вручную.</p><p>моим решением было добавить эту строку в мой код:</p><pre><code>system.diagnostics.debugger.launch(); </code></pre><p>как только этот код достигнут, возникает исключение, и .net framework показывает диалоговое окно, спрашивающее, какую visual studio (т.е. новый экземпляр vs 2008, новый экземпляр vs 2013 и т.д.) вы хотите использовать для отладки программы. вы можете выбрать существующий экземпляр vs с загруженным проектом. это прикрепит процесс к вашему сеансу vs и загрузит все символы, и теперь вы можете отлаживать ваш проект.</p><p>конечно, компиляция должна выполняться с использованием конфигурации debug, а не release.</p>

<p>я знаю, что опоздал на несколько лет, но я подумал, что сделал что-то не так, и, следуя вышеизложенным шагам, понял, что по ошибке установил конфигурацию решения «выпуск» :)</p>

<p>для приложения asp.net проверьте свойства сайта, вкладка asp.net. убедитесь, что выбрана правильная версия asp.net.</p>

<p>если мы получим последнюю версию от vsts, все файлы будут в режиме только для чтения. во время выполнения проекта все классы библиотеки классов становятся доступными только для чтения, а точки торможения становятся пустыми и говорят: «точка останова в настоящий момент не будет достигнута. для этого документа не загружены символы». </p><p><strong> решение 1 </strong></p><p>перейдите в расположение проекта и щелкните правой кнопкой мыши папку ---> свойства ---> вкладка общие ---> отменить только для чтения (применяется только к файлам в папке) ---> применить ---> ок</p><p><strong> решение 2 </strong></p><p>начните отладку, перейдите в «отладка» ---> windows ---> модули. выберите одну сборку и щелкните правой кнопкой мыши ---> (выбрать) настройка символов. задайте путь к корзине в символе «кэш» в этом каталоге и выберите «серверы microsoft» в символе расположения pdb. нажмите загрузить все символы. это займет время. затем нажмите ок.</p><p>теперь статус символа для всей сборки был изменен с «не удается найти или открыть pdb» на «символы загружены».</p>

<p>щелкните правой кнопкой мыши на project -> properties -> go to<em> build </em>tab -> uncheck<em> optimize code </em>. сделайте это для любого проекта в вашем решении</p>

<p>это произошло со мной после копирования, вставки другого файла asmx webservice в существующий webservice, что привело к той же ошибке при попытке отладки недавно добавленной службы, чтобы иметь возможность отладки, мне пришлось начать без отладки, а затем подключиться к процессу. это странно, но это единственный способ, который я смог отладить.</p>

<p>я перепробовал все это и не смог заставить свою точку останова работать ...</p><p>что я сделал, чтобы исправить эту проблему</p><p>на странице, где моя точка останова не была достигнута, я выбрал папку> добавить существующий элемент, а затем выбрал страницу из ее пути сохранения. это позволило точке останова начать работать.</p>

<p>если вы используете проект <code>c++</code> или <code>dll</code> из проекта <code>c#</code> или любого проекта <code>.net</code> и хотите выполнить отладку в собственном коде. затем перейдите в <code>.net</code> project<strong><em> свойства -> debug -> включить отладку собственного кода </em></strong>(установите значение true).</p>

<p>проверьте свой <code>solution configuration</code> выпадающий список. убедитесь, что вы выбрали <code>debug</code>, а не <code>release</code>.</p>

<p>для меня проблема заключалась лишь в том, что я пытался отлаживать в веб-проекте, который не был задан в качестве начального проекта. таким образом, он не был хорошо скомпилирован при запуске отладки, а файл .pdb не обновился. ,.</p><p>просто установив проект на «установить как стартовый проект», добились цели.</p><p>надеюсь это поможет</p>

<p>при попытке отладки надстройки excel в vs 2013, после того, как я попробовал все параметры отладки, отключив пошаговое выполнение исходного кода dotnet framework и отключив загрузку символов,<strong> в конечном итоге у меня сработало изменение параметра конфигурации на release, а не debug </strong>, так как компилятор, казалось, перешагнул через код, и точки останова были в конечном счете достигнуты.</p>

<p>моя личная ситуация состояла в том, что отладка работала в visual studio 2013, где она изначально создавалась, но не работала в 2015 году. мне удалось это исправить, изменив версию в файле проекта на версию 12. вместо версии 10.</p>

<p>я хотел бы добавить еще одну вещь, которая может предотвратить переход/разрыв, не загружая файл .pdb и не обнаружив его ни на одном другом форуме: если вы добавите пост-процесс сборки для добавления метаданных ресурса в dll (название компании, номер версии и т.д.), как в «rc.exe my\_dll.rc», это может привести к несоответствию между dll и файлом .pdb. если подписи не совпадают, он не будет загружать файл и все символы, необходимые для отладки. удалите это из отладочной сборки.</p>

<p>[<strong>wince</strong>] я столкнулся с этим во время сборки на wince, казалось, что «очистка» не очистила целевую папку на устройстве, я получил отладку/откат, изменив папку «вывод» на устройствах. (свойства проекта -> вкладка «устройства» -> изменить папку вывода на другую, отличную от предыдущей неудачной отладки) - и вуаля !! это работает. возможно, придется выполнить ручную очистку устройства, но это будет позже.</p><p>надеюсь, это поможет.</p>

<p>в моем случае в файле <code>assemblyinfo.cs</code> была строка ниже, и я прокомментировал ее, и все было правильно:</p><pre><code>[assembly: system.diagnostics.debuggable(system.diagnostics.debuggableattribute.debuggingmodes.ignoresymbolstoresequencepoints)] </code></pre>

<p>я прошел все ответы, ничего не помогло. в моем случае проблема с<strong> web.config </strong>file. это был <code><compilation debug="false" strict="true"</code> </p><p>я поменял на</p><p><code><compilation debug="true" strict="false"</code>. теперь я могу отлаживать приложение.</p>

<p>в моем случае я отлаживал расширение wpf, используя экспериментальный экземпляр visual studio. после начала отладки, а затем приостановив перезапись, я открыл окно <code>debug > windows > modules</code>. там я мог видеть каталог, в который visual studio пыталась загрузить символы <code>c:\users\<username>\appdata\local\microsoft\visualstudio\15.0\_76a9e536exp\extensions\<companyname></code>.<strong> после остановки отладки я удалил целевую папку с помощью проводника windows и перезапустил отладчик. затем visual studio смогла достичь точки останова. </strong></p>

<p>я закончил тем, что проследил свою проблему до очевидной проблемы несовместимости с использованием<strong> нескольких версий postsharp </strong>. приложение, которое я пытался отладить, имело предыдущую версию postsharp, но ссылалось на проект, который использовал более свежую версию, и по той или иной причине это привело к тому, что vs отказался генерировать файл pdb для<strong> конкретно </strong>этого приложения (все остальные dll нормально загружали свои отладочные символы).</p><p>решением было обновить postsharp в каждом проекте до последней версии и перекомпилировать.</p>

<p>я получил это и был озадачен (с помощью visual studio 2013 premium).</p><p>обычно наши приложения на работе ссылаются на .dll в определенном каталоге/app, например: c:\ourcompanyapps\xxxxxx.dll. это происходило в решении, в котором есть несколько проектов winform и .dll. проекты .dll компилируются в c:\ourcompanyapps \, а проекты winform ссылаются на скомпилированные файлы .dll в этом месте.</p><p>проблема:<strong> я обнаружил, что рассматриваемое приложение ссылается на проект .dll в папке «управление исходным кодом»\debug вместо скомпилированного файла .dll в c:\ourcompanyapps. </strong></p><p>решение:<strong> я удалил ссылку и заново добавил ее в папку c:\ourcompanyapps \. затем я мог пройти через точки останова, которые я добавил в коде .dll. </strong></p><p>надеюсь, это кому-нибудь поможет.</p>

<p>в моем случае это было потому, что мой профиль публикации (publish to local iis site) был каким-то образом настроен на release configuration, несмотря на то, что для глобальной конфигурации сборки было задано debug. модифицированный профиль публикации для конфигурации отладки решил проблему для меня.</p>

<p>если вы обнаружите, что вам нужно создавать проекты в своем решении индивидуально в определенном порядке, чтобы получить решение для построения, потому что создание решения сразу после очистки не работает, а затем вы обнаружите проблему, описанную в вопросе, возможно, это связано с включением некоторых дополнительных проектов, в которых есть ссылки на неверные относительные пути, поскольку они были добавлены в ваше решение из другого местоположения. поэтому относительные пути не идут в то же место, что и файлы .csproj, которые находятся в папках непосредственно под файлом .sln.</p><p>причина, по которой он будет создаваться путем создания проектов один за другим в определенном порядке, заключается в том, что другие проекты ссылаются на те же библиотеки, но затем собираются в gac. решение заканчивается построением, но символы, которые он загружает, взяты из gac, и эти символы могут устареть.</p><p>решение, как бы то ни было, состоит в том, чтобы реструктурировать физическую структуру папок вашего решения и проектов или открыть файлы .csproj индивидуально и исправить относительные пути так, чтобы все ссылки на любую заданную библиотеку в конечном итоге указывали на одно и то же местоположение во всех проектах. или, возможно, используйте токен <code>$(solutiondir)</code>.</p><p>и если все остальное по-прежнему не удается, вам нужно принудительно сбросить visual studio для конфигурации конфигурации сборки, и для этого необходимо отменить проверку всех проектов для всех конфигураций сборки, а затем перепроверить их все - см. решение <a href="https://stackoverflow.com/a/17723774/197591">здесь</a> .</p>

<p>убедитесь, что ваш код не выдается во время ссылки. даже если компилятор может перестроить объект, если компоновщик не видит ссылки на код, он выбросит его и вызовет эту ошибку при попытке установить точку останова.</p>

<p>у меня была такая же проблема, и я попробовал все возможное ... некоторые из них</p><p>1) обнуление временных файлов во временных папках asp.net в папках bin и obj.</p><p>2) снимите флажок «оптимизировать код» и «включить мой код».</p><p>3) навигация и попытка вручную загрузить символы из окон модуля.</p><p>4) проверка флага сборки в свойствах решения. ........</p><p>и этот список можно продолжить… я потратил на это как один день, но, в конце концов, у меня получилось ... я знал, что символы для моего проекта не загружались, и я не мог видеть никаких модулей с имя моего проекта в окне модулей либо ...</p><p>поэтому проблема заключалась в том, что мои символы были перенесены из пути виртуального каталога проекта ... и он был сопоставлен с виртуальным каталогом какого-то другого проекта ... веб-проекта, который должен был загружаться в модулях, там не было ниже приведены шаги, за которыми я следовал ..</p><ul> <li><strong> щелкните правой кнопкой мыши по конкретному веб-проекту и выберите свойства </strong></li> <li><strong> перейти на вкладку web </strong></li> <li><strong> вы можете увидеть кнопку создать виртуальный каталог </strong></li> <li><strong> как только я щелкнул по нему, я увидел предупреждающее сообщение о том, что «(имя проекта) сопоставлено с (anotherprojectname)», вы уверены, что хотите сделать переназначение? что-то вроде этого </strong></li> <li><strong> тогда имело смысл, почему я вижу ненужное имя проекта в окне модулей </strong></li> <li><strong> затем я перестроил решение и смог достичь точки останова </strong></li> </ul>

<p>в моей ситуации visual studio загружает библиотеки dll в <a href="http://msdn.microsoft.com/en-us/library/yf1d93sz%28v=vs.110%29.aspx">global assembly cache (gac)</a> , а не в dll в моем списке проектов. я удалил библиотеки dll в gac, и теперь я вижу, как работает точка останова.</p>

<p>в моем случае это начало происходить<strong> после обновления windows </strong>, оказалось, что обновление окон отключило службы iis, из-за чего у моего api не было возможности установить заданную точку останова, но что на самом деле происходило то, что iis не запускалось, и поэтому мой код приложения фактически не выполнялся. </p><p>дважды проверьте, включены ли службы iis в меню «функции windows». </p><p>инструкции для iis: </p><ul> <li>панель управления</li> <li>программы</li> <li>открывать или закрывать окна</li> <li>тик интернет информационные услуги</li> <li>перезапустить визуальную студию</li> </ul><p>при использовании iis express:</p><p>откройте «установка и удаление программ» со старой панели управления и запустите исправление в iis express. или вы можете перейти в панель управления - >> программы - >> программы и компоненты - >> включить или отключить функции windows. - >> информационные службы интернета и проверьте родительскую папку информационные службы интернета. </p><p>я получил этот ответ здесь: <a href="https://stackoverflow.com/questions/17772216/specified-argument-was-out-of-the-range-of-valid-values-parameter-name-site">указанный аргумент был вне диапазона допустимых значений. имя параметра: сайт</a> </p>

<p>я сделал чистую и восстановить вещи. это не сработало (обычно так и есть). теперь я присоединяюсь к w3wp перед вызовом через службу, затем позволяю ему один раз вызвать службу, достигнуть другой точки останова, затем я изменяю точку выполнения так, чтобы она снова запускала ту же строку (вызывая службу), затем она фактически останавливается на моей точке останова внутри метода обслуживания.</p>

<p><strong> основной проект имеет как ссылку проекта, так и ссылку файла на один и тот же проект. </strong></p><p>в моем случае основной проект имел две ссылки: одна ссылка на проект, а другая ссылка на файл, на dll, созданную тем же проектом.</p><p>таким образом, файл pdb не копировался в папку bin основного проекта, что приводило к недоступности символов.</p>

<p>возникла проблема при попытке отладки приложения silverlight в проекте sharepoint. на вкладке sharepoint свойств проекта вы должны явно включить отладку для приложений silverlight. иначе вы получите эту ошибку.</p>

<p>есть много ответов с различными решениями, чтобы решить эту проблему.</p><p>другое решение - убедиться, что ваш код доступен. например:</p><p>любой код, который добавляется после возврата в функцию. добавление goto, который эффективно пропускает ваш код с точкой останова.</p><p>я не говорю, что это нормально, но они также являются причинами.</p>

<p>новый способ решения этой проблемы появился в visual studio 2017 с 15.3.1 по 15.3.5. если вы используете <a href="http://editorconfig.org/">editorconfig</a> , опция charset = utf8 вызывает эти симптомы. команда vs воспроизвела это и <a href="https://developercommunity.visualstudio.com/content/problem/100735/since-153-breakpoints-dont-work-when-the-charset-o.html">говорит, что работает над этим</a> .</p><p>итак, одно из исправлений - закомментировать строку charset = utf8 в файле .editorconfig.</p><p>по состоянию на 9 октября 2017 г. статус «фиксированный - ожидается релиз».</p><p>(благодаря джону хаттону, <a href="https://stackoverflow.com/questions/2468852/the-breakpoint-will-not-currently-be-hit-the-source-code-is-different-from-the/46548676#46548676">«точка останова в настоящее время не будет достигнута. исходный код отличается от исходной версии.» что это значит?</a> </p>

<p>нет данных, как f11 на chamada do método, forçando entrar no método onde o bp com problemma estava, sendo assim, o точка останова для восстановления.</p><p>в моем случае я дал f11 в вызове метода, заставив ввести метод, в котором была проблема bp, поэтому точка останова была восстановлена.</p>

<p>еще одним решением для меня было посткомпилировать проект, который не смог взломать папку bin основного проекта.</p>

<p><strong> при отладке сборки путем запуска внешнего приложения </strong>есть некоторые дополнительные соображения:</p><ul> <li><p>внешнее приложение может загружать свои собственные копии сборок (dll) из файла манифеста. (например, файл <code>appname.exe.manifest</code>) если это так, вам необходимо отключить это, возможно, вручную изменив манифест.</p></li> <li><p>внешнее приложение может просто попытаться загрузить из dll в своей папке, даже без манифеста. вам придется удалить/переименовать их.</p></li> </ul><p>после выполнения этих шагов версия сборки, запущенная в отладчике, должна быть правильно загружена и может быть отлажена в обычном режиме.</p>

<p>попробовав несколько таких вещей, в конечном итоге у меня сработало следующее:</p><p>в <code>debug > options > general</code> снимите флажок <code>enable edit and continue</code>.</p>

<p>моей причиной был устаревший telerik openaccess orm. установил новую версию, потом все работает. необходимо скачать и установить. только обновление nuget не сработало. <a href="http://www.telerik.com/forums/visual-studio-2015-ctp6-does-not-generate-pdb-file">кто-то еще также упомянул об этом</a> </p>

<p>также была эта проблема с проектом, сгенерированным qt .pro. оказалось, я забыл установить переменную окружения, которая определяет свойства/general/output directory. тривиальный, и один, на который нужно смотреть в первую очередь, но иногда мы упускаем очевидное.</p>

<p>также стоит упомянуть, что в некоторых ситуациях возникает проблема, потому что проект, который вы хотите отладить, является внешней службой. в этом случае вы должны присоединить отладчик к запущенному процессу.</p>

<p>ни одна из идей здесь не сработала для меня, но я благодарю всех за их усилия - в моем случае это было приложение windows, которое ссылалось на проект библиотеки классов - я мог отлаживать приложение windows, но не библиотеку классов. файлы pdb генерировались. однако я обнаружил, что, если я отлаживаю вызов библиотеки классов, я могу войти в библиотеку.</p>

<p>иногда iis по какой-то причине будет удерживать файлы. мне пришлось удалить сайт и создать его заново, и проблема ушла</p>

<p>возможно, вам не следовало делать <code>autopostback</code>.<br> если ваш код не создает postback, вы можете получить эту ошибку.<br> с уважением.</p>

<p><em> проект> свойства> c++> общие> формат отладочной информации </em>-<strong> база данных программы (/ zi) </strong></p><p>я проверил<em> linker> debugging </em>и уже генерировал отладочную информацию. когда я запустил приложение, символы были загружены (<em> отладка> windows> модули </em>). установка формата информации отладки исправила это для меня. надеюсь, это поможет кому-то!</p>

<p>в моем случае ни одно из этих решений не сработало. я должен был пойти в </p><blockquote> <p>инструменты -> импорт и экспорт настроек -> сбросить все настройки.</p> </blockquote><p>и тогда отладка начала работать без проблем.</p>

<p>я понимаю, что это старая тема, но для блага других вот что случилось со мной. проблема заключалась в том, как я применил атрибут designer. я создал дизайнерский класс. дизайнер переопределил свойства prefilterproperties, чтобы сделать свойства anchor, autoscroll и autosize только для чтения.</p><pre><code>[system.security.permissions.permissionset(system.security.permissions.securityaction.demand, name="fulltrust")] public class j2ascrollablecontainerdesigner : parentcontroldesigner </code></pre><p>я создал класс и добавил к нему моего дизайнера. это стандартный способ присоединения атрибута конструктора к классу, который встречается во многих примерах msdn. конструктор, очевидно, не использовался, потому что когда я поместил свой элемент управления на поверхность конструктора form, ни одно из упомянутых выше свойств не было прочитано только в таблице свойств.</p><pre><code>[designer(typeof(j2ascrollablecontainerdesigner), typeof(parentcontroldesigner))] public partial class j2ascrollablecontainer : usercontrol </code></pre><p>в отчаянии я изменил объявление атрибута designer в своем классе на следующую подпись, и теперь вызывался конструктор. у меня нет объяснения, почему один способ работает, а другой нет. если я вернусь к описанному выше объявлению атрибута designer, дизайнер снова перестанет работать.</p><pre><code>[designer(typeof(j2ascrollablecontainerdesigner))] public partial class j2ascrollablecontainer : usercontrol </code></pre>

<p>использование dependency injection, autofac в моем случае, для автоматического разрешения при сканировании сборок. одна из упомянутых сборок не была решена.</p><p>мое исправление состояло в том, чтобы напрямую ссылаться на класс из assembly, чтобы заставить visual studio загрузить assembly. простое использование сборки в качестве ссылки не приведет к загрузке сборки при запуске приложения.</p>

<p>убедитесь, что вы включили «включить только мой код». если да, отключите его.</p>

<p>я случайно открыл файл проекта в текстовом редакторе, и он был выгружен. маловероятно, но проверьте, если вы застряли.</p>

<p>у меня такое было при запуске веб-сайта asp.net в 2013 году. похоже, что в моем случае он исчезает после полного запуска веб-браузера.</p>

<p>еще одно решение для некоторых случаев, когда возникает эта ошибка: проверьте ваши<strong> build action </strong>.</p><p>у меня была эта проблема в проекте asp.net mvc3; один из моих контроллеров по неизвестной причине установил действие сборки для entitydeploy, хотя это должно было быть<strong> compile </strong>.</p>

<p>мой отсутствовал, главным образом, потому что у меня было 2 проекта, припаркованных на один url iisexpress, убедитесь, что вы указали другой порт и нажали createvirtualdirectory.</p>

<p>я столкнулся с этой проблемой, пытаясь отладить фоновый агент приложения wp7. как оказалось, эта проблема отладки была лишь признаком реальной проблемы: мой фоновый агент вообще не работал в режиме отладки. я следовал следующему руководству о том, как реализовать фоновый агент: <a href="http://msdn.microsoft.com/en-us/library/hh202941(v=vs.92).aspx">http://msdn.microsoft.com/en-us/library/hh202941(v=vs.92).aspx</a> </p><p>... но забыл добавить</p><pre><code>#define debug\_agent </code></pre><p>это означало, что мой агент никогда не запускался в режиме отладки. как только эта строка была добавлена, проблема этой темы исчезла.</p>

<p>отладка <code>-></code>options <code>-></code> general <code>-></code> снимите отметку для «<code>enable just my code</code>»</p><p>это сработало для меня.</p>

<p>еще один совет, который работал для меня.</p><p>если ваш проект/библиотека подписан, даже не подписан с задержкой, он все равно может не быть отлаживаемым. попробуйте отключить параметр подписи, отладить его, а затем восстановить параметр подписи.</p>

<p>следующие шаги разветвились для меня:</p><ol> <li>перейдите в папку «bin» вашего проекта.</li> <li>удалите папку «debug».</li> <li>создайте свой проект снова.</li> <li>папка debug будет создана заново.</li> </ol><p>теперь вы можете начать отладку снова.</p>

<p>для меня:</p><ul> <li>свойства открытого решения</li> <li>выберите «общие свойства»/«отладка исходных файлов»</li> <li>в окне «не искать эти исходные файлы» удалите файлы, которые почти наверняка там ошибочно.</li> </ul>

<p>я установил точку останова и получил это сообщение при выполнении кода. однако точка останова была доступна только для юнит-теста. мне пришлось щелкнуть правой кнопкой мыши на модульном тесте и выбрать «отладочные юнит-тесты».</p>

<p>поставлю это здесь в надежде, что это кому-нибудь поможет.</p><p>у меня была проблема с отсутствующими символами в отношении веб-службы.</p><p>дурацкое решение состояло в том, что проект установки не был настроен на сборку при создании решения, что означало, что, когда я щелкнул правой кнопкой мыши на проекте установки и установил службу, затем подключился к процессу; та же устаревшая служба была установлена без pdb, потому что она не совпадала = нет рабочих точек останова.</p><p>ручным решением было щелкнуть правой кнопкой мыши проект установки и собрать его, а затем установить его. затем я изменил список сборки проекта решения, включив в него проект установки, когда решение создается в режиме отладки.</p>

<p>если у вас есть и c #, и собственный код (c/c++), убедитесь, что для проекта включена встроенная отладка:<br> 1. щелкните правой кнопкой мыши ваш проект запуска в обозревателе решений.<br> 2. выберите свойства<br> 3. выберите вкладку «отладка»<br> 4. убедитесь, что отладка собственного кода включена <a href="https://i.stack.imgur.com/pqdg2.png"> <img src="https://i.stack.imgur.com/pqdg2.png" alt=""enable native code debugging" must be checked in order to be able to debug your native code"> </a> </p>

<p>я думаю, что источник, если эта ошибка, символы отладки трудно найти решение после сборки для выпуска.</p><p>я попробовал все остальные ответы - как правило, восстанавливая символы .pdb или проверяя их местоположение, очищая и перестраивая проект, следя за тем, чтобы активная конфигурация не была release и т.д.</p><p>в конечном итоге у меня получилось щелкнуть правой кнопкой мыши проект в обозревателе решений> отладка> начать новый экземпляр.</p>

<p>для моего приложения xamarin оно, наконец, начало отлаживаться после того, как я полностью очистил папку source control, выполнил «get latest» и перестроил решение. </p>

<p>у моей коллеги была эта проблема, и я следовал тем же шагам, что и здесь, но решение было другим, чем любое из этих.</p><p>код, который она хотела отладить, находился в проекте, на который ссылается текущий проект, и он никогда не выполнялся в сеансе visual studio. dll запускался из папки gac, после того как она удалила, что проект вообще не запустился, выдав исключение, как только он попытался запустить. решение состояло в том, чтобы включить указанный проект в локальную папку.</p><p>из solutionexplorer:</p><ol> <li>выберите «отладочный» проект, из которого вы исчерпаете</li> <li>развернуть<strong> ссылки </strong>(если не видно, выберите меню<strong> проект </strong>, элемент<strong> показать все файлы </strong>)</li> <li>щелкните правой кнопкой мыши проект, который имеет точку останова, которая не работает, выберите<strong> свойства </strong></li> <li>изменить значение<strong> копировать локальный </strong>с<strong> ложь </strong>на<strong> истина </strong></li> </ol><p>попробуйте снова. (это сработало для нее!)</p>

<p>это может быть вызвано тем, что тестовый проект, веб-проект или другой исполняемый проект имеют ссылку nuget на проект с тем же именем, что и загружаемый модуль.</p><p>возьмите следующие примеры проектов в решении:</p><ul> <li><code>vendor.abc</code></li> <li><code>mylib</code> (ссылки vendor.abc)</li> <li><code>myprog</code> (консольная программа: ссылка только на mylib)</li> <li><code>myprog.web</code> (проект mvc: ссылки на mylib и проект решения vendor.abc)</li> <li><code>mylib.test</code> (тестовый проект: ссылки на mylib и пакет nuget vendor.abc)</li> </ul><p><code>myprog</code> и <code>myprog.web</code> оба загрузят символы отладки. <code>mylib.test</code> не будет загружать символы отладки.</p>