回答
我为MonoDevelop IDE写了一个干净的反向工程实现的T4引擎。它是开源的,在许可的MIT/X11许可下获得许可,因此您可以自由地将引擎嵌入到应用程序中或重新分发。还有一个TextTransform.exe命令行工具的实现,以及Mono.TextTemplating命名空间中的一些API来帮助托管引擎。
现在唯一真正缺少的功能是自定义指令处理器 - 但这个补丁,欢迎:-)
你可以从MonoDevelop的/主/ src目录/加载项/单声道SVN TextTemplating的代码。
据我所知,T4是visual studio的一部分,不能在没有它的情况下重新分配。至少,你需要用你的应用程序重新分配VS shell。
T4现在不幸与Visual Studio绑定在一起。我相信Clarius正在开发可支持自动化的CodeGen版本的工具,但他们尚未完成功能集,还将成为商业产品。 (更多信息:http://www.visualt4.com/features.html。)在此之前,您必须使用传统的codegen技术(有效编写自己的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。
我希望这会有所帮助。祝你好运!
对于处理T4模板,你必须使用Microsoft.VisualStudio.TextTemplating.dll,但我不认为你可以重新分配该组件
问候 缪斯VSExtensions
- 1. 你可以在t4模板中使用全局变量吗?
- 2. 你可以在一个.NET应用程序中SSL一页吗?
- 3. 你可以在事件处理程序中使用wxMutex吗?
- 4. 你可以从信号处理程序中调用signal()吗?
- 5. 你可以在xsl模板中调用一个模板吗?
- 6. 管理模板可以在Ruby on Rails web应用程序中使用吗?
- 7. 你可以有多个应用程序处理Django中的404吗?
- 8. 我可以在.NET 2应用程序中运行.NET 4应用程序吗?
- 9. 你可以在Android应用程序中调用python例程吗?
- 10. .NET 4.0程序集可以用于.Net 3.5应用程序吗?
- 11. 你可以在.Net中锁定一个应用程序变量吗?
- 12. 处理T4模板时访问HttpContext
- 13. 定制T4预处理模板
- 14. T4模板处理输入多次
- 15. 如何处理T4字符串模板?
- 16. 你可以在iPhone应用程序中使用UIButton应用程序吗?
- 17. 你可以在复制中使用CouchDB的“文档更新处理程序”吗?
- 18. 你可以在WPF应用程序中使用jQuery吗?
- 19. 你可以在Dart应用程序中使用Java库吗?
- 20. 你可以在Silverlight中使用多个应用程序域吗?
- 21. 你可以用.net 2.0 winforms应用程序中的basicHttpBinding调用WCF吗?
- 22. 你可以信任ViewState来处理程序控制吗?
- 23. 你可以检查你的应用程序内的应用程序更新吗?
- 24. AIR应用程序可以编程来处理URL协议吗?
- 25. 在应用程序模板中启用上下文处理器
- 26. 你可以在全屏中运行VB应用程序吗?
- 27. Visual Studio的项目模板可以使用T4吗?
- 28. 可以使用VSIX安装MVC脚手架T4模板吗?
- 29. 可以在.NET Web应用程序中安全使用点吗?
- 30. 我可以在4.0应用程序中引用.NET 3.5 .DLL吗?
+1 - 非常酷。 – BuddyJoe 2009-09-09 18:05:10