Joh*_*gMD 8 c# t4 code-generation visual-studio-2010 visual-studio
我正在尝试调试预处理的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模板没有任何影响.有任何想法吗?
看起来您缺少debug="true"
模板标头中调试所需的项目。
另外,我会快速浏览一下以下博客文章,其中详细介绍了 T4 模板调试。
归档时间: |
|
查看次数: |
2216 次 |
最近记录: |