Подтвердить что ты не робот

"Step Into" внезапно не работает в Visual Studio

Внезапно у меня возникла проблема, когда я не могу войти в какой-либо код через отладку в Visual Studio. Этот шаг работает отлично, но он отказывается входить в (F11) любой из моих кодов. Раньше это работало, теперь это внезапно.

Я пробовал некоторые вещи ниже, но я все еще не имел успеха:

  • Удалить все файлы bin в каждом проекте в моем решении, очистить решение, перестроить решение.

  • Построение проектов в решении indivdualy

  • Перезагрузите компьютер

Это приложение ASP.NET С#, использующее WCF на местном уровне. Он находится в режиме отладки. У меня есть точка останова на странице, использующей эту услугу. Точка прерывания попадает, но она не будет входить в служебный код.

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

Как я могу исправить эту проблему?

Добавление точки останова в проект службы. Я получаю предупреждение:

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

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

Информация из окна вывода.

'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.DurableInstancing\v4.0_4.0.0.0__31bf3856ad364e35\System.Runtime.DurableInstancing.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml.Hosting\v4.0_4.0.0.0__31bf3856ad364e35\System.Xaml.Hosting.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\2d49cf50\14eee2cf\App_Web_jmow15fw.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.WorkflowServices\v4.0_4.0.0.0__31bf3856ad364e35\System.WorkflowServices.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Web\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Discovery\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Discovery.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Activities\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Activities.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Routing\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Routing.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Channels\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Channels.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.IdentityModel\v4.0_4.0.0.0__b77a5c561934e089\System.IdentityModel.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
4b9b3361

Ответ 1

С закрытой Visual Studio:

  • Удалить файл решения suo (содержит отладочную информацию, пользовательские настройки, такие как точки останова, закладки и другие пользовательские настройки.)
  • Удалите файлы кэша Visual Studio (см. Ниже)
  • Удалить все временные файлы (переход от VS9 к VS10 заключается в том, что VS10 использует временную папку)
  • Удалите все папки obj и bin вручную, используя проводник Windows.

Откройте Visual Studio и перестройте все. Это всегда работает. См. С# VS2010 Ошибка входа в режим останова.

Для справки:

Private Sub ClearVS9
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Microsoft\VisualStudio\9.0\ProjectAssemblies")
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Microsoft\VisualStudio\9.0\Recent")
    ClearFolder(oShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Local Settings\Application Data\ApplicationHistory")
    ClearFolder(oShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemblies")
    ClearFolder(oShell.ExpandEnvironmentStrings("%WINDIR%") & "\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files")
End Sub

Private Sub ClearVS10
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Local\Microsoft\WebsiteCache")
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Local\Microsoft\VisualStudio\10.0\ProjectAssemblies")
End Sub

Смотрите ссылку Злой файл suo - сражайтесь и побеждайте в Visual Studio, упомянутой JMarsch.

Ответ 2

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

Ответ 3

введите описание изображения здесь Я использую VS 2017, но это работает в 2015 году также. Моя проблема заключалась в том, что когда я устанавливаю точку останова, код будет нормально останавливаться в этой точке, но когда я нажимаю F10 или F11, код просто завершит выполнение вместо перехода к следующей строке. Я также заметил, что, хотя код был остановлен в точке останова, я не мог использовать свой курсор для зависания над моими переменными, чтобы увидеть их значения. Вот как я исправил проблему

  • Если проект открыт, но не запущен, убедитесь, что отображается панель инструментов Standard (вероятно, это потому, что она по умолчанию).
  • Посмотрите на раскрывающийся список на панели инструментов с параметрами Debug, Release, Configuration Manager. Выберите "Отладка" из этого списка. Mine был настроен на выпуск

Ответ 4

Visual Studio не входит в код , когда не может загрузить символы (файл .PDB) библиотеки DLL.

Ниже есть ссылка на статью и некоторые скриншоты, которые объясняют , как узнать, где Visual Studio пытается загрузить файлы PDB. Как только вы узнаете, какой каталог у вас есть, просто скопируйте туда файлы .pdb, и Visual Studio перейдет в.

https://devblogs.microsoft.com/devops/understanding-symbol-files-and-visual-studios-symbol-settings/

Окно Модули → Отладка> Windows> Модули

Modules Window --> Debug > Windows > Modules

Symbol Load Information....

Symbol Load Information Window

Ответ 5

Попробуйте следующее:

  • Удалить временные файлы ASP.NET из %temp%.
  • Очистите и постройте проекты в своем решении по одному, а затем создайте свой хост и попробуйте отладить.

Это сработало для меня.

Ответ 6

  • Является ли проект WCF веб-приложением? Для этого включена отладка ASP.NET? (щелкните правой кнопкой мыши по проекту WCF, перейдите в "Свойства | Веб" )

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

  • Проверьте диспетчер конфигурации (в обозреватель решений, щелкните правой кнопкой мыши на решении | Configuration Manager) и убедитесь, что оба проекта строят.

  • Иногда файл .suo повреждается, и вы можете получить все виды странного поведения. Вы можете попробовать удалить его (сделайте резервную копию, если вы параноидально, см. Злой файл suo - борьба и победа с Visual Studio).

Ответ 7

Ваш ключ F11 может быть отскок к чему-то другому. Он может работать, если вы нажмете кнопку "шаг за шагом" в Visual Studio.

Ответ 8

Я была такая же проблема.

Я хотел войти в метод, который возвращает IEnumerator и я вызывал его простым вызовом (просто именем метода).

private void Start()
{
    GetTagsFromCloud();
}

Но поскольку он работает в фоновом режиме, лучше назвать его следующим образом.

private void Start()
{
    StartCoroutine(GetTagsFromCloud());
}

Ответ 9

Основываясь на том, что я прочитал и понял, вы должны искать следующий файл:

Сборка проекта Name.pdb в каталоге bin. Если вы его не видите, он не будет построен. См. Мои комментарии по настройке полной информации об отладке и Параметры/Отладка/Символы.

Установите вывод сборки проекта в подробный или подробный (Инструменты/Параметры/Проекты и Решения/Строить и Запустить/Выполнить сборку проекта).

Посмотрите на определенные задачи с этим файлом (например, AssemblyName.pdb), удалите, скопируйте и т.д. и посмотрите, можете ли вы (попытаться) удалить файл pdb, где он ссылается (dll/exe), где он кладет его, копируя его и т.д.

Если он не будет создан, вы увидите только задачи удаления. Если это так, вы увидите копии и справочные задания. Эти пути копирования и ссылки будут сообщать вам, где вам нужно указать консоль модулей этой сборки (AssemblyName.exe), чтобы получить ее файл символа (т.е. Где этот файл pdb был скопирован).

Ответ 10

В моем случае я запускал веб-приложение из Visual Studio. Сборка, на которую я пытался ссылаться, была указана из местоположения в моей обычной файловой системе, но во время выполнения она загружалась из GAC. Я всегда думал, что .NET попытался загрузить из локального bin сначала GAC, но я думаю, что нет. В любом случае, он не смог найти символы отладки .pdb для версии в GAC и почему я не смог войти. Как только я обновил сборку в GAC и предоставил файл .pdb, он сработал.

Ответ 11

Если вы настроили путь вывода, убедитесь, что все пути вывода указаны в том же каталоге вывода

Ответ 13

В моем случае в VS2008 проверка опции "Включить неуправляемую отладку кода" в Project Properties | Debug сделала трюк. Я не знаю, почему это сработало, поскольку весь код в проекте находится в vb.net.

В более поздних версиях этот параметр был переименован в "Включить отладку исходного кода".

Ответ 14

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

Ответ 15

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

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

Рекомендуется попробовать, прежде чем связываться с VS, потому что это быстрее и безопаснее. Вы можете переустановить всю студию, только чтобы понять, что проблема все еще существует.

У меня была та же проблема, и в моем случае более приоритетным потребителем был опыт nvidia geforce, где я установил F11 в качестве переключателя индикатора FPS. Когда я отключаю наложение этой игры в игре (она всегда активна и готова к нажатию клавиш, чтобы показывать fps, записывать, делать снимки, транслировать и т.д.) F11 работал как чудо после перезагрузки компьютера.

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