我正在尝试调试预处理的T4模板,我无法进入通过运行预处理模板创建的类.我能够创建一个类的实例,但是一旦我尝试在调试时进入,就会弹出一个新窗口
没有可用的来源.当前位置没有可用的源代码.
我的理解是,预处理模板可以像普通的c#类一样进行调试,这不正确吗?为了能够进入由预处理模板定义的类,您需要做些什么吗?
这是一个非常简单的模板和我遇到问题的调用代码:
TestPreprocessedTemplate.tt:
<#@ template language="C#" debug="true" #>
Hello <# Write("World"); #>
Run Code Online (Sandbox Code Playgroud)
测试代码:
var template = new TestPreprocessedTemplate();
string test = template.TransformText();
Run Code Online (Sandbox Code Playgroud)
编辑 - 根据下面的建议添加了debug ="true"语句,仍然有同样的问题.
更新 - 我也在MSDN论坛上发布了这个问题,并收到了MS员工的回复,表明我上面描述的内容应该确实有效.还有其他人遇到过这个问题吗?
更新 - 在MSDN论坛的帮助下,问题在于将#line指令添加到生成的c#类中.评论它们允许我按预期逐步执行代码.有没有办法阻止这些指令被添加到生成的类?使用ASP.NET页面,您可以添加LinePragmas ="false"参数,但这似乎对T4模板没有任何影响.有任何想法吗?