Установка точки останова в шаблоне T4
Я пытаюсь отладить выполнение шаблона T4 в Visual Studio 2008.
Вся информация, которую я нахожу при отладке шаблонов T4 в Visual Studio 2008, говорит о том, что вы можете установить точку останова (красную точку) в шаблоне, как если бы это был обычный файл кода. У меня установлен инструмент подсветки кода Clarius T4, поэтому мой шаблон T4 цветной, но я не могу установить точку останова. Когда я нажимаю на полях, ничего не происходит.
Я пробовал Debugger.Break(), и он запускает новый экземпляр VS.NET, но не может загрузить код из моего шаблона. Я получаю диалоговое окно с текстом "Нет исходного кода для текущего местоположения". Это происходит, если у меня загружен тот же проект в другом экземпляре или если я раскручиваю новый экземпляр.
Что дает?
4 ответа
ОК, разобрался. Запуск нового экземпляра не вариант, независимо от того, что говорится в статье Олега. (Не смущайтесь, мистер Сыч, его блог - это Евангелие для генерации кода Т4!)
- Запустите второй экземпляр Visual Studio,
- Откройте файл (любой файл), чтобы появилось меню "Отладка".
- Выберите "Присоединить к процессу..." и выберите другой экземпляр VS.NET
- Сохраните шаблон в прикрепленном экземпляре VS.NET (или щелкните правой кнопкой мыши и выберите "Запустить пользовательский инструмент").
Вуаля.
Установите следующее:
<#@ template debug="true" hostSpecific="true" #>
<#@ import namespace="System.Diagnostics" #>
Тогда в вашем шаблоне
Debugger.Launch();
VS выпустит JIT-отладчик в новом экземпляре VS 2010
В Visual Studio 2013:
- Установите точку останова в файле.tt
- Щелкните правой кнопкой мыши файл.tt в обозревателе решений.
- Выберите "Шаблон отладки T4"
- Готово!
Нет необходимости в подключении второго экземпляра Visual Studio.
Убедитесь, что вы включили параметр отладки в директиве шаблона:
<# @ template language = "C#" debug = "true" #>
Это заставляет T4 сохранять исходный код и файлы символов, необходимые для отладки в Visual Studio.