你能在.NET应用程序内处理T4模板吗?

5

你能在.NET应用程序内处理T4模板吗?那段代码可以被调用吗?包含在一个项目中吗?授权如何?

更新:看起来您需要以某种方式使用VS。

5个回答


4
我为MonoDevelop IDE编写了一个干净的反向工程实现的T4引擎。它是开源的,根据宽松的MIT/X11许可证授权,因此您可以自由地在应用程序中嵌入引擎或重新分发它。还有一个TextTransform.exe命令行工具的实现,并且在Mono.TextTemplating命名空间中提供了一些API来帮助托管引擎。
目前唯一真正缺少的功能是自定义指令处理器 - 但欢迎为此提交补丁 :-)
您可以从Mono SVN的monodevelop/main/src/addins/TextTemplating获取代码。

2
据我理解,T4是Visual Studio的一部分,不能在没有Visual Studio的情况下重新分发。至少,您需要将VS shell与您的应用程序一起重新分发。

1

如果要处理T4模板,您必须使用Microsoft.VisualStudio.TextTemplating.dll,但我认为您不能重新分发此程序集

敬礼 Muse VSExtensions


1

目前,T4不幸地与Visual Studio绑定在一起。我相信Clarius正在开发他们的工具的CodeGen版本,可能支持自动化,但他们尚未最终确定功能集,而且这将是一个商业产品。(更多信息:http://www.visualt4.com/features.html)。在那之前,您必须使用经典的代码生成技术(有效地编写自己的T4),或者选择Oleg提到的Visual Studio Shell + SDK路线(更多信息:http://msdn.microsoft.com/en-us/vsx2008/products/bb933751.aspx)。

如果您不必使用T4语法,那么CodeSmith产品可能可以满足您的需求。它包括一个用于编写模板并从中生成代码的API。这是一款备受尊重的商业产品,但我自己没有使用过。有一个在线帮助指南,API参考在这里:http://www.codesmithtools.com/help/Default.aspx##CodeSmith.chm/Using_the_CodeSmith_API.html

希望这可以帮到您。祝您好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接