Debugging 在T4模板中设置断点

Debugging 在T4模板中设置断点,debugging,visual-studio-2008,t4,clarius-visual-t4,Debugging,Visual Studio 2008,T4,Clarius Visual T4,我正试图在Visual Studio 2008中调试T4模板的执行。 我在VisualStudio2008中找到的关于调试T4模板的所有信息都表明,可以在模板中设置断点(红点),就像它是一个常规代码文件一样。我安装了Clarius T4 code highlighter,因此我的T4模板是彩色的,但是我无法设置断点。当我在页边空白处单击时,什么也没有发生 我尝试了Debugger.Break(),它启动了一个新的VS.NET实例,但无法从我的模板加载代码。我得到一个对话框,上面写着“当前位置没有

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

我在VisualStudio2008中找到的关于调试T4模板的所有信息都表明,可以在模板中设置断点(红点),就像它是一个常规代码文件一样。我安装了Clarius T4 code highlighter,因此我的T4模板是彩色的,但是我无法设置断点。当我在页边空白处单击时,什么也没有发生

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


给出了什么?

好的-找到了。不管怎么说,启动一个新实例都不是一个选项。(对Sych先生来说没有什么不好,他的博客是T4代码生成的福音!)

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

  • 瞧。

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

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

    设置以下内容:

    <#@ template debug="true" hostSpecific="true" #>
    <#@ import namespace="System.Diagnostics" #>
    
    VS将在Visual Studio 2013中的VS 2010新实例中启动JIT调试器:

  • 在.tt文件中设置断点
  • 右键单击解决方案资源管理器中的.tt文件
  • 选择“调试T4模板”
  • 完成了
    不需要附加Visual Studio的第二个实例。

    哇,Skynet现在已经升级到T4型号了?我的行为与VS2008相同;我无法在.tt文件中设置断点。(我也安装了Clarius highlighter,但我认为这与断点问题无关)。但是,我可以在VS2010的.tt文件中设置断点。对你没用,但可能对某人感兴趣。@Mark:谢谢,很高兴知道!在VS2017和VS2019中添加这些也是必要的。你可能认为VS至少会抱怨它们丢失了,而不是什么都不做,也不会报告任何错误。你也可以从“工具”菜单附加到流程。这似乎对我部分有效。我仍然在VS的调试实例中看到“没有可用的源代码”。我如何获得源代码?这个人自己!谢谢-很明显,红点断点在VS2008中不起作用,但是连接效果很好。工作得很好。。。启动第二个VS进行调试;从模板到程序集加载的任何调试代码。美好的只需多走一步。。。确保首先通过修改VS安装来安装实时调试器!(将其作为单个组件添加)您知道这在VS 2019中是否仍然有效吗?我似乎看不到要调试的右键单击选项。
    Debugger.Launch();