Установка точки останова в шаблоне T4

Я пытаюсь отладить выполнение шаблона T4 в Visual Studio 2008.

Вся информация, которую я нахожу при отладке шаблонов T4 в Visual Studio 2008, говорит о том, что вы можете установить точку останова (красную точку) в шаблоне, как если бы это был обычный файл кода. У меня установлен инструмент подсветки кода Clarius T4, поэтому мой шаблон T4 цветной, но я не могу установить точку останова. Когда я нажимаю на полях, ничего не происходит.

Я пробовал Debugger.Break(), и он запускает новый экземпляр VS.NET, но не может загрузить код из моего шаблона. Я получаю диалоговое окно с текстом "Нет исходного кода для текущего местоположения". Это происходит, если у меня загружен тот же проект в другом экземпляре или если я раскручиваю новый экземпляр.

Что дает?

4 ответа

Решение

ОК, разобрался. Запуск нового экземпляра не вариант, независимо от того, что говорится в статье Олега. (Не смущайтесь, мистер Сыч, его блог - это Евангелие для генерации кода Т4!)

  1. Запустите второй экземпляр Visual Studio,
  2. Откройте файл (любой файл), чтобы появилось меню "Отладка".
  3. Выберите "Присоединить к процессу..." и выберите другой экземпляр VS.NET
  4. Сохраните шаблон в прикрепленном экземпляре VS.NET (или щелкните правой кнопкой мыши и выберите "Запустить пользовательский инструмент").

Вуаля.

Установите следующее:

<#@ template debug="true" hostSpecific="true" #>
<#@ import namespace="System.Diagnostics" #>

Тогда в вашем шаблоне

Debugger.Launch();

VS выпустит JIT-отладчик в новом экземпляре VS 2010

В Visual Studio 2013:

  1. Установите точку останова в файле.tt
  2. Щелкните правой кнопкой мыши файл.tt в обозревателе решений.
  3. Выберите "Шаблон отладки T4"
  4. Готово!

Нет необходимости в подключении второго экземпляра Visual Studio.

Убедитесь, что вы включили параметр отладки в директиве шаблона:

<# @ template language = "C#" debug = "true" #>

Это заставляет T4 сохранять исходный код и файлы символов, необходимые для отладки в Visual Studio.

Другие вопросы по тегам