Как отлаживать время разработки экземпляра Visual Studio 2012 - программирование
Подтвердить что ты не робот

Как отлаживать время разработки экземпляра Visual Studio 2012

Я разрабатываю WPF MarkupExtension и обнаружил ошибки во время разработки. В предыдущей версии Visual Studio 2010 можно было запустить второй экземпляр Visual Studio 2010 и приложить к процессу уже работающего экземпляра, установить точки останова и отладить поведение времени разработки.

В Visual Studio 2012, однако, я могу приложить к процессу другого Visual Studio 2012, но не все символы загружаются во втором экземпляре, и поэтому я не могу отлаживать время разработки, как в Visual студия  . 2010

Как запустить этот отладчик?

Что я пробовал:

  • "devenv.exe/RootSuffix Exp" без успеха
  • Всегда выполнять как администратор
  • Загрузка всех или стандартных символов
  • Отладка с и без встроенного кода (процесс присоединения)
  • Отладка с кодом .NET 4 и без него (процесс присоединения)
4b9b3361

Ответ 1

Процесс называется XDesProc, и он создается с каждым новым окном предварительного просмотра. Для этого: чтобы отладить окно предварительного просмотра, откройте второй экземпляр Visual Studio 2012 с тем же решением, установите точки останова и прикрепите к XDesProc. Он рекомендовал открыть только одно окно предварительного просмотра для присоединения к правильному процессу. В противном случае используйте Process Explorer, чтобы найти правильный процесс.

Ответ 2

В Visual Studio 2012 дизайнер WPF работает в отдельном процессе. Попытайтесь возиться с этим процессом. Это должно быть легко узнать имя процесса.

Ответ 3

Убедитесь, что переключатель "Включить/Отключить код проекта" установлен в "включен"... в VS/Blend 2015 это небольшой значок под редактором XAML как показано здесь.

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

Кроме того, если он отключен и вы пытаетесь выполнить отладку с использованием второго экземпляра VS, тогда при подключении к XDesProc любые точки останова, установленные вами в коде, сообщают, что они "в настоящее время не будут удалены. [потому что] Нет для этого документа были загружены символы". Вы можете подумать, что вам нужно каким-то образом загрузить символы, но если вы откроете окно Modules, пытающееся это сделать, вы даже не увидите свой модуль в списке.

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

Кстати, есть отличное описание этой процедуры отладки Джеймса Макнеллиса по одному из этих связанных вопросов.