代码之家  ›  专栏  ›  技术社区  ›  Dave Swersky

在T4模板中设置断点

  •  16
  • Dave Swersky  · 技术社区  · 16 年前

    我试图在VisualStudio2008中调试T4模板的执行。

    我在visualstudio2008中找到的关于调试T4模板的所有信息都表明,可以在模板中设置断点(红点),就像它是常规代码文件一样。我安装了Clarius T4代码荧光笔,所以我的T4模板是彩色的,但是 我不能设置断点。

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

    有什么好处?

    4 回复  |  直到 12 年前
        1
  •  29
  •   ShaneGray    15 年前

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

    Debugger.Launch();
    

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

        2
  •  19
  •   Emond    12 年前

    在Visual Studio 2013中:

    1. 在.tt文件中设置断点
    2. 在解决方案资源管理器中右键单击.tt文件
    3. 完成!

    不需要附加visualstudio的第二个实例。

        3
  •  9
  •   Dave Swersky    16 年前

    Oleg's article 她说(不,对Sych先生来说,他的博客是T4代码生成的福音!)

    1. 启动Visual Studio的第二个实例,
    2. 选择“附加到进程…”,然后选择另一个VS.NET实例

    瞧。

        4
  •  6
  •   Oleg Sych    16 年前

    确保在template指令中启用debug选项:

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

    这使得T4保存在visualstudio中调试所需的源代码和符号文件。