在T4模板中设置断点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在T4模板中设置断点相关的知识,希望对你有一定的参考价值。

我正在尝试在Visual Studio 2008中调试T4模板的执行。

我在Visual Studio 2008中调试T4模板时发现的所有信息都表示您可以在模板中设置断点(红点),就像它是常规代码文件一样。我安装了Clarius T4代码荧光笔,所以我的T4模板是彩色的,但我无法设置断点。当我点击保证金时没有任何反应。

我已经尝试过Debugger.Break(),它启动了一个新的VS.NET实例,但它无法从我的模板加载代码。我收到一个对话框,上面写着“当前位置没有可用的源代码。”如果我在另一个实例中加载了相同的项目,如果我启动一个新实例,就会发生这种情况。

是什么赋予了?

答案

设置以下内容:

<#@ template debug="true" hostSpecific="true" #>
<#@ import namespace="System.Diagnostics" #>

然后在你的模板中

Debugger.Launch();

VS将在VS 2010的新实例中启动JIT调试器

另一答案

在Visual Studio 2013中:

  1. 在.tt文件中设置断点
  2. 右键单击解决方案资源管理器中的.tt文件
  3. 选择“调试T4模板”
  4. 完成!

无需附加Visual Studio的第二个实例。

另一答案

好吧 - 想通了。无论Oleg's article说什么,启动新实例都不是一种选择。 (对Sych先生来说,没有任何意义,他的博客是T4代码生成的福音!)

  1. 启动Visual Studio的第二个实例,
  2. 打开文件(任何文件),以显示“调试”菜单。
  3. 选择“附加到进程...”并选择另一个VS.NET实例
  4. 将模板保存在附加的VS.NET实例中(或右键单击并选择“运行自定义工具”)

瞧。

另一答案

确保在模板指令中打开调试选项:

<#@ template language =“C#”debug =“true”#>

这使得T4保存了在Visual Studio中进行调试所需的源代码和符号文件。

以上是关于在T4模板中设置断点的主要内容,如果未能解决你的问题,请参考以下文章

如何在代码中设置断点来调试 PHP

在 vs 代码中导入的 python 模块中设置断点

T4模板:T4模板之菜鸟篇

我可以在 jsFiddle 中设置 Firebug 断点吗?

不能总是在 Chrome 中设置 React Native 断点

如何在 Google Chrome 的内联 Javascript 中设置断点?