Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 包含在t4模板中_C#_Templates_T4 - Fatal编程技术网

C# 包含在t4模板中

C# 包含在t4模板中,c#,templates,t4,C#,Templates,T4,我试图使用Include将一个模板嵌入到另一个模板中。这应该是工作的方式,但我有一个问题。见下面的例子 示例: C:\\Users\\HP_User\\Documents\\Visual Studio 2015\\Projects\\SampleBuilder\\Src\\GoogleSampleBuilder\\GoogleSampleBuilder\\Templates\\Csharp\\MethodTemplate.tt LicenseHeader.tt Main.tt 我将这两个子模板

我试图使用Include将一个模板嵌入到另一个模板中。这应该是工作的方式,但我有一个问题。见下面的例子

示例:

C:\\Users\\HP_User\\Documents\\Visual Studio 2015\\Projects\\SampleBuilder\\Src\\GoogleSampleBuilder\\GoogleSampleBuilder\\Templates\\Csharp\\MethodTemplate.tt
LicenseHeader.tt

Main.tt

我将这两个子模板设置为“复制本地”,因为我希望避免将完整路径嵌入模板中。路径实际上作为属性存储在app.config中

目录布局

<#@include file="LicenceHeader.tt" #> 
<#@include file="AboutHeader.tt" #>
项目
->模板
----->Csharp
------------>MainTemplate.tt
------------>AboutHeader.tt
------------>LicenseHeader.tt


使用上面的完整路径调用模板
var host=new TemplateHost(templateFileName)

如果完全按照您在此处描述的方式执行,则一切正常。确保在includes everywhere中使用正确的名称(例如,如果您将包含LicenseHeader.tt而不是LicenseHeader.tt,或者以某种方式拼写错误-您将出现此类错误)。我尝试了复制粘贴操作,以确保这不是拼写问题。如果我从main.tt复制该行并将其放在LicenceHeader.tt中,则该行不起作用:可能您可以提供模板的布局(它们位于哪个文件夹中)。或者,你的模板可能比你所提供的更复杂(我尝试了你提供的确切内容)。你就这样做了。不知道我是否应该将主模板设置为只复制本地模板。然而,理想的情况是,我希望他们阅读一个特定的目录,因为我最终将生成不同的编程语言,所有这些语言都将有不同的模板?当我测试的时候,我把它们并排放在一起(没有本地拷贝,因为这是不需要的)。如果按照你在这里描述的那样做,一切都很好。确保在includes everywhere中使用正确的名称(例如,如果您将包含LicenseHeader.tt而不是LicenseHeader.tt,或者以某种方式拼写错误-您将出现此类错误)。我尝试了复制粘贴操作,以确保这不是拼写问题。如果我从main.tt复制该行并将其放在LicenceHeader.tt中,则该行不起作用:可能您可以提供模板的布局(它们位于哪个文件夹中)。或者,你的模板可能比你所提供的更复杂(我尝试了你提供的确切内容)。你就这样做了。不知道我是否应该将主模板设置为只复制本地模板。然而,理想的情况是,我希望他们阅读一个特定的目录,因为我最终将生成不同的编程语言,所有这些语言都将有不同的模板?当我测试的时候,我把它们并排放在一起(因为不需要本地拷贝)。
<#@include file="LicenceHeader.tt" #>  
<#@include file="LicenceHeader.tt" #> 
<#@include file="AboutHeader.tt" #>
C:\\Users\\HP_User\\Documents\\Visual Studio 2015\\Projects\\SampleBuilder\\Src\\GoogleSampleBuilder\\GoogleSampleBuilder\\Templates\\Csharp\\MethodTemplate.tt