Я пытаюсь отладить предварительно обработанный шаблон T4, и я не могу войти в класс, созданный путем запуска предварительно обработанного шаблона.Я могу создать экземпляр класса, но как только я пытаюсь войти во время отладки, появляется новое окно, которое говорит:
Источник недоступен.Для текущего местоположения исходный код недоступен.
Насколько я понимаю, предварительно обработанные шаблоны можно отлаживать так же, как обычный класс c #, не так ли?Что конкретно вам нужно сделать, чтобы иметь возможность войти в класс, определенный предварительно обработанным шаблоном?
Вот очень простой шаблон и вызывающий код, с которым у меня возникла проблема:
TestPreprocessedTemplate.tt:
<#@ template language="C#" debug="true" #>
Hello <# Write("World"); #>
Код теста:
var template = new TestPreprocessedTemplate();
string test = template.TransformText();
Редактировать - Добавленоутверждение debug = "true" согласно предложенному ниже предложению по-прежнему имеет ту же проблему.
Обновление - я также разместил этот вопрос на форумах MSDN и получил ответ от сотрудника MS, в котором указано "да"то, что я описал выше , должно действительно работать.Кто-нибудь еще сталкивался с этой проблемой?
Обновление - С некоторой помощью форумов MSDN, похоже, проблема в директивах #line, которые добавляются в сгенерированный класс c #.Комментируя их, я перешагиваю код, как и ожидалось. Есть ли способ предотвратить добавление этих директив в сгенерированный класс? С помощью страницы ASP.NET вы можете добавить параметр LinePragmas = "false", но, похоже, он не влияет на T4шаблон.Есть идеи?