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

Отладка шаблона T4 в VS 2010 сбой IDE

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

  • Во втором экземпляре vs2010, откройте шаблон T4, который вы хотите debug (только файл .tt в порядке)
  • Перейдите в раздел "Отладка" → Прикрепить к процессу и найдите исходный файл devenv.exe процесс
  • Добавить обычную точку останова (красный шар) до места, которое вы хотите начать отладку (во втором vs2010 все еще)
  • Перейдите к оригиналу vs2010, сохраните файл .tt и... лото! Второй экземпляр vs2010 будет отлаживать ваш шаблон.

Ответ 3

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

смерзаться:

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

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

значение: DbgJITDebugLaunchSetting

данные: 0x2

tt шаблон:

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

Ответ 5

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