创建一次性生成t4模板

时间:2011-02-28 20:56:52

标签: c# automation t4

我到处都试图找到一种方法从我的项目中的T4模板生成文件。

我的目标是:

  1. 创建模板
  2. 将它包含在某个地方(我不知道在哪里)
  3. 执行“模板中的新文件”
  4. 从模板结果
  5. 在我的项目中生成一个新的.cs文件

    如果你可以指导我或分享教程,我会很开心!

2 个答案:

答案 0 :(得分:0)

Here你会发现微软的T4文档。但是,您需要注意的是,Microsoft对T4的支持并不完全,AFAIK依赖于第三方T4编辑器来创建模板。例如Tangible

答案 1 :(得分:0)

史蒂夫·桑德森(Steve Sanderson)在NuGet上有一个很棒的软件包叫做T4Scaffolding就可以做到这一点。

http://nuget.org/packages/T4Scaffolding/

如果这对您不起作用,您可以自己动手。
为此,您将使用Visual Studio项目模板中的T4服务API。

您可以通过构建实现IWizard接口的小型COM组件来实现此目的。

这是界面文档: http://msdn.microsoft.com/en-us/library/ms233750(v=VS.100).aspx

以下是创建IWizard(不是T4)的示例: http://blogs.conatural.com/2009/01/how-to-write-a-vs-2008-item-template-and-wizard-for-conatural-data-commands/comment-page-1/

以下是T4服务界面,您可以从向导调用该界面在任意文件上运行T4:http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.texttemplating.vshost.itexttemplating.aspx

在任何方便的服务提供商处使用以下代码来掌握这一点:

GetService(typeof(STextTemplating)) as ITextTemplating