您可以从 .NET 应用程序内部处理 T4 模板吗?该代码是否可以调用?包含在项目中?许可?
更新:所以看起来你必须以某种方式使用 VS。
请参阅创建自定义文本模板主机。
我为 MonoDevelop IDE 编写了一个 T4 引擎的完全逆向工程实现。它是开源的,在宽松的 MIT/X11 许可下获得许可,因此您可以自由地将引擎嵌入到您的应用程序中或重新分发它。还有一个 TextTransform.exe 命令行工具的实现,以及 Mono.TextTemplating 命名空间中的一些 API,以帮助托管引擎。
目前唯一真正缺少的功能是自定义指令处理器 - 但欢迎使用此补丁 :-)
您可以从 Mono SVN 中的 monodevelop/main/src/addins/TextTemplating 获取代码。
据我了解,T4 是视觉工作室的一部分,没有它就无法重新分发。至少,您需要在您的应用程序中重新分发 VS shell。
不幸的是,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。
我希望这有帮助。祝你好运!
要处理 T4 模板,您必须使用 Microsoft.VisualStudio.TextTemplating.dll 但我认为您不能重新分发此程序集
问候 Muse VSExtensions