回答
我爲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