我有一个运行时T4模板,使用它生成一个.cs文件。我需要在我的代码中访问这个生成的文件。我没有看到生成的类文件,所以我可以使用它,但如果我做了一个"显示所有文件"然后将其包含在我的解决方案中并构建,然后我就可以访问生成的文件。
如何使用此生成的c#文件而无需手动更改。
应该是我使用代码
RuntimeTextTemplate runTimeGen = new RuntimeTextTemplate();
File.WriteAllText("RuntimeGenerator3.cs", runTimeGen.TransformText());
在最后一个语句之后我应该能够访问生成的类吗? 是模板文件。我正在使用控制台应用程序。
运行时模板的名称是 RuntimeGenerator.tt
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
namespace Controls
{
public class DropDownControlUtility
{
public static string ForeColor
{
get
{
return "Blue";
}
}
}
}
使用Main方法的类包含以下代码
class Program
{
static void Main(string[] args)
{
RuntimeGenerator gen = new RuntimeGenerator();
File.WriteAllText("DropDownUtility.cs", gen.TransformText());
}
}
答案 0 :(得分:4)
有2种不同的模板Run-time text template和Design-time text template。使用设计时模板生成的文件会自动包含在项目中。运行时文本模板用于在启动程序时在运行时生成文件,而设计时文本模板允许您在Visual Studio项目中生成程序代码和其他文件。
所以你需要的是创建新的设计时模板(TextTemplate)并将代码放入其中。 生成文件:在解决方案资源管理器中,在任何文件的快捷菜单上,选择“运行自定义工具”或单击“生成”菜单中的“转换所有模板”。您还可以设置项目以生成文件automaically。