在VS 2017社区中,我无法调试T4模板,它在2015年工作。
我有一个非常基本的模板,比如这个...
<#@ template debug="true" hostspecific="false" language="C#" #>
<#@ output extension=".txt" #>
<#
var a = "Hello";
var b = "World";
#>
<#=($"{a} {b}!")#>
Run Custom Tool
和Transform All T4 Templates
两个选项都可以工作,并且文本文件包含预期的输出
你好,世界!
如果我在某处放置断点并从.tt的上下文菜单中使用Debug T4 Template
,它会抛出此错误
无法启动转换运行创建进程。
但是它在VS 2015中工作得很好,我可以在那里调试。
如何在VS 2017中调试T4模板?请注意,我没有在VS 2015中安装任何工具/扩展来调试T4
3条答案
按热度按时间qjp7pelc1#
我也有同样的问题,我不知道为什么它不这样工作,但我有一个工作。
将debug设置为true,并添加诊断命名空间
在您的T4模板中写入
然后运行你的模板(最简单的方法就是保存它),它会问你是否想在一个新的visual studio示例中调试。
vsaztqbk2#
最简单的解决方案是将这两行添加到T4模板的顶部。
然后只需通过保存文件来运行模板,visual studio将提示您在新示例中进行调试。
如果您在模板中使用Host,并得到错误
The name 'Host' does not exist in the current context
,则设置`hostspecific=“true”'。4szc88ey3#
我在Visual Studio 2022中遇到了这个问题。事实证明,我需要在Visual Studio安装程序的各个组件部分安装文本模板转换。我从this note in the docs中解决了这个问题
文本模板转换组件作为Visual Studio扩展开发工作量的一部分自动安装。您也可以从Visual Studio SDK的“单独组件”选项卡中的"SDK、库和框架“类别下安装它。从”单独组件“选项卡安装建模SDK组件。