Не удается отладить шаблон T4 в VS2017
В VS2017 Community я не могу отлаживать шаблоны T4, которые работают в 2015 году.
У меня есть очень простой шаблон, например...
<#@ template debug="true" hostspecific="false" language="C#" #>
<#@ output extension=".txt" #>
<#
var a = "Hello";
var b = "World";
#>
<#=($"{a} {b}!")#>
Run Custom Tool
и Transform All T4 Templates
работают обе опции, а текстовый файл содержит ожидаемый вывод
Привет, мир!
Если я где-то поставил точку останова и использовал Debug T4 Template
из контекстного меню .tt, он выдает эту ошибку
Невозможно запустить процесс создания прогона трансформации.
Однако он отлично работает в VS 2015, и я могу там отлаживать.
Чего бы мне не хватало? как отлаживать шаблоны T4 в VS 2017? Обратите внимание, что у меня нет инструмента/расширения, установленного в VS2015 для отладки T4
Ответы
Ответ 1
У меня была такая же проблема, я не знаю, почему это не работает, но у меня есть работа.
Установите для отладки значение true и добавьте пространство имен диагностики
<#@ template language="C#" debug="true" #>
<#@ import namespace="System.Diagnostics" #>
В шаблоне T4 напишите
Debugger.Launch();
Затем запустите свой шаблон (проще всего его сохранить), и он спросит, хотите ли вы отлаживать новый экземпляр visual studio.
Ответ 2
Самое простое решение - просто добавить эти две строки в начало вашего шаблона T4.
<#@ template debug="true" hostspecific="false" language="C#" #>
<# System.Diagnostics.Debugger.Launch(); #>
Затем просто запустите шаблон, сохранив файл, и визуальная студия предложит вам отладить в новом экземпляре.
Если вы используете Host в своем шаблоне и получаете ошибку The name 'Host' does not exist in the current context
, тогда установите `hostspecific = "true".