gpt4 book ai didi

c# - T4 预处理模板调试不起作用 - Visual Studio 2010 RTM

转载 作者:太空狗 更新时间:2023-10-29 19:43:18 26 4
gpt4 key购买 nike

我正在尝试调试经过预处理的 T4 模板,但无法进入通过运行经过预处理的模板创建的类。我能够创建该类的一个实例,但是一旦我在调试时尝试进入,就会弹出一个新窗口,上面写着

No source available. There is no source code available for the current location.

我的理解是预处理模板可以像普通的 c# 类一样调试,这不正确吗?是否有什么特别需要做的才能进入由预处理模板定义的类?

这是一个非常简单的模板和我遇到问题的调用代码:

TestPreprocessedTemplate.tt:

<#@ template language="C#" debug="true" #>
Hello <# Write("World"); #>

测试代码:

var template = new TestPreprocessedTemplate();
string test = template.TransformText();

编辑 - 根据下面的建议添加了 debug="true"语句,仍然有同样的问题。

更新 - 我还在 MSDN 论坛上发布了这个问题,并收到了一位 MS 员工的回复,表示是的,我上面描述的应该确实有效。还有其他人遇到过这个问题吗?

更新 - 在 MSDN 论坛的一些帮助下,问题似乎出在添加到生成的 c# 类中的#line 指令。将它们注释掉可以让我按预期逐步执行代码。 有什么方法可以防止将这些指令添加到生成的类中吗?对于 ASP.NET 页面,您可以添加 LinePragmas="false"参数,但这似乎对T4 模板。有什么想法吗?

最佳答案

在 Visual Studio 2010 中,您需要在调用 Debugger.Break() 之前调用 Debugger.Launch()。

oleg 是大师,我会检查你 http://www.olegsych.com/2008/09/t4-tutorial-debugging-code-generation-files/

关于c# - T4 预处理模板调试不起作用 - Visual Studio 2010 RTM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3506525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com