0

我正在使用运行时 T4 文本模板。我希望预处理器生成的 C# 文件具有 .tt.cs 的输出扩展名,但是,默认情况下,它只有 .cs 的扩展名。如果这是一个设计时文本模板,我可以添加一个输出扩展指令来强制执行此行为。但是,这些指令似乎对运行时模板没有任何影响。有谁知道使用运行时模板完成此任务的方法?

<#@ output extension=".tt.cs" #>
4

2 回答 2

2

没有简单的方法,但可以做到。

首先创建您自己的单个文件生成器,从 Microsoft.VisualStudio.TextTemplationg.VSHost.10.0.dll 中的 TemplatePreprocessor 派生,并将其注册到 Visual Studio。

然后覆盖 ProcessTemplate() 并在调用基本实现后,使用您想要的任何扩展名调用 SetFileExtension。

不过,对于这么小的变化,这是很多工作。

于 2012-06-08T18:49:18.013 回答
1

我在此链接中找到了以下内容。可能对您有用,因为他展示了如何使用预处理模板设置 .cs,但前提是您从另一个模板中调用模板。如果从 C# 或 VB 代码中运行,还没有发现任何显示它是可能的。

<#@ output #> 指令似乎对预处理模板没有影响。当预处理模板包含该指令时,不会产生错误。托管应用程序负责更改输出文件的扩展名。

于 2012-06-08T03:26:54.527 回答