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

Не удается отладить шаблон 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

4b9b3361

Ответ 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".