繁体   English   中英

使用C#运行T4模板

[英]Running a T4 template using C#

我有T4模板(mycode.tt),它生成一个cs文件。 我通常右键单击tt文件并选择RunCustomTool,它在内部获取xml文件并为我生成代码。 现在我想使用ac #windows应用程序运行自定义工具。 因此,只需单击一个按钮即可运行自定义工具。 是否可以从c#运行CustomTool。

编辑:

我有2个tt文件,其中一个没有codebehind cs文件。 但另一个附加了.cs文件,我从第一个.tt文件调用第二个文件的TransformText()方法。 所以我需要调用第一个文件。所以我不能使用TransformText()方法。 有没有办法动态调用textTemplate文件?

当您使用VS2010时,您可以轻松实现它。 如果向项目添加新文件,请选择预处理的文本模板文件。 您可以像平常一样编辑模板。 该文件不是直接生成输出,而是生成正常生成的代码。 我知道这听起来令人困惑。 但是您在输出文件中看到的是文本模板工具包生成的代码,用于获取输出(或多或少)。

这是一个名为“TestTemplate.tt”的预处理文本模板的简短示例,您如何在代码中使用它:

tt文件:

 <#@ template language="C#" #> Some output. 

码:

 using System; using System.Diagnostics; namespace Test { class Program { static void Main(string[] args) { TestTemplate testTemplate = new TestTemplate(); Debug.Print(testTemplate.TransformText()); } } } 

我推荐@jb_上面回答的预处理路线。

作为替代方案,如果您需要模板仍然可以编辑而无需编译步骤以与自定义C#应用程序一起使用,并且应用程序将仅部署在Visual Studio旁边的计算机上,则可以编写自定义主机。

http://msdn.microsoft.com/en-us/library/bb126519.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM