【发布时间】:2021-11-23 17:27:26
【问题描述】:
我有两个 .tt 文件(template1.tt 和 template2.tt),其中部分代码相同。
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Reflection" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
<#
Assembly assem1 = Assembly.LoadFrom("a.dll");
Assembly assem2 = Assembly.LoadFrom("b.dll");
#>
以上是中的常用代码
所以我想从 T4 模板中删除公共部分。 我尝试使用创建基本模板(Template3)。
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Reflection" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".txt" #>
<#+
public void loadAssemblies()
{
Assembly assem1 = Assembly.LoadFrom("a.dll");
Assembly assem2 = Assembly.LoadFrom("b.dll");
}
#>
现在当我尝试添加时
<#@ template debug="false" hostspecific="false" language="C#" inherits="Template3" #>
tt 文件未编译。
错误是
严重性代码描述项目文件行抑制状态 编译转换时出错:找不到类型或命名空间名称“Template3”(您是否缺少 using 指令或程序集引用?)模板 C:\Users\xxx\source\repos\Template\Template\Template2.tt 1
有什么我错的建议或如何删除重复项?
【问题讨论】:
标签: c# inheritance t4