Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Отладка шаблона T4 в VS 2010 приводит к сбою IDE

Автор вопроса: Eric J.Ответов: 5

Я пытаюсь отладить слегка измененную версию шаблона ADO.NET POCO Entity Generator, используя указания Олег Сыч опубликовал несколько лет назад. Я изменил ключ DbgJITDebugLaunchSetting в соответствии с рекомендациями.

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

Можно ли отлаживать шаблоны T4 с помощью VS 2010?

visual-studio-2010debuggingt4

Ответы

Ответ 1 · рейтинг 15 · Oleg Sych

в Visual Studio 2010 вам нужно вызвать Debugger.Launch() перед Debugger.Break().

Ответ 2 · рейтинг 7 · andrecarlucci

Вместо использования System.Diagnostics.Debugger.Launch(); или Break(), подключите отладчик вручную.

  1. Во втором экземпляре vs2010 откройте шаблон T4, который вы хотите отлаживать (подойдет только файл .tt).
  2. Перейдите в Debug -> Attach to Process и найдите исходный процесс devenv.exe.
  3. Добавьте обычную точку останова (красный шар) в место, где вы хотите начать отладку (во втором vs2010 еще)
  4. Перейдите к оригинальному vs2010, сохраните файл .tt и... бинго! Второй экземпляр vs2010 будет отлаживать ваш шаблон.

Ответ 3 · рейтинг 3 · psulek

Окончательное решение, которое работает для меня:

отредактировать:

Ключ (системы x86): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

Ключ (системы x64): HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework

значение: DbgJITDebugLaunchSetting

данные: 0x2

шаблон тт:

<#@ template debug="true" hostSpecific="true"  #>
<# System.Diagnostics.Debugger.Launch(); System.Diagnostics.Debugger.Break(); #>

Ответ 4 · рейтинг 2 · Tim Fischer

Вам также потребуется отладка = истина:

‹@#template debug="true" #> System.Diagnostics.Debugger.Launch(); Отладчик.Перерыв();

http://msdn.microsoft.com/en-us/library/bb126338.aspx

Ответ 5 · рейтинг 1 · Ryan

Чтобы добавить к решению andrecarlucci, если вы сохраните файл, вам будет предложено перезагрузить его во втором экземпляре Visual Studio, прежде чем вы сможете его отладить. Если вам не нужно вносить дальнейшие изменения, но вам нужно отладить его несколько раз, вам не нужно каждый раз сохранять, чтобы взломать код. Вы можете просто нажать кнопку "Преобразовать все шаблоны" на панели инструментов обозревателя решений в исходном экземпляре Visual Studio.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы