代码之家  ›  专栏  ›  技术社区  ›  BuddyJoe

您能从.NET应用程序内部处理T4模板吗?

  •  5
  • BuddyJoe  · 技术社区  · 16 年前

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

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

    5 回复  |  直到 15 年前
        1
  •  4
  •   Mikayla Hutchinson    15 年前

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

    目前唯一真正缺少的功能是定制的指令处理器——但欢迎使用以下补丁:—)

    您可以从MonoDevelopment/main/src/addins/textformating中获得代码。

        2
  •  6
  •   John Saunders    16 年前
        3
  •  2
  •   Oleg Sych    16 年前

    据我所知,t4是Visual Studio的一部分,没有它就无法重新分发。至少,您需要与应用程序一起重新分配vs shell。

        4
  •  1
  •   Dave R.    16 年前

    目前,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 .

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

        5
  •  1
  •   BALKANGraph    15 年前

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

    当做 Muse垂直扩展