5

您可以从 .NET 应用程序内部处理 T4 模板吗?该代码是否可以调用?包含在项目中?许可?

更新:所以看起来你必须以某种方式使用 VS。

4

5 回答 5

6

请参阅创建自定义文本模板主机

于 2009-07-23T17:38:26.447 回答
4

我为 MonoDevelop IDE 编写了一个 T4 引擎的完全逆向工程实现。它是开源的,在宽松的 MIT/X11 许可下获得许可,因此您可以自由地将引擎嵌入到您的应用程序中或重新分发它。还有一个 TextTransform.exe 命令行工具的实现,以及 Mono.TextTemplating 命名空间中的一些 API,以帮助托管引擎。

目前唯一真正缺少的功能是自定义指令处理器 - 但欢迎使用此补丁 :-)

您可以从 Mono SVN 中的 monodevelop/main/src/addins/TextTemplating 获取代码。

于 2009-09-08T17:55:20.490 回答
2

据我了解,T4 是视觉工作室的一部分,没有它就无法重新分发。至少,您需要在您的应用程序中重新分发 VS shell。

于 2009-07-24T10:34:05.183 回答
1

不幸的是,T4 目前与 Visual Studio 相关联。我相信 Clarius 正在开发可能支持自动化的工具的 CodeGen 版本,但他们尚未最终确定功能集,而且它将成为商业产品。(更多信息: http: //www.visualt4.com/features.html。)在此之前,您将不得不使用经典的代码生成技术(有效地编写您自己的 T4),或者采用 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

我希望这有帮助。祝你好运!

于 2009-07-24T11:03:39.943 回答
1

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

问候 Muse VSExtensions

于 2010-04-29T08:45:01.260 回答