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

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

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

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

Что дает?

Ответы

Ответ 2

Задайте следующее:

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

Затем в вашем шаблоне

Debugger.Launch();

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

Ответ 3

В Visual Studio 2013:

  • Установить точку останова в файле .tt
  • Щелкните правой кнопкой мыши файл .tt в проводнике решений
  • Выберите "Шаблон Debug T4"
  • Готово!

Нет привязки второго экземпляра Visual Studio.

Ответ 4

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

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

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