在t4中覆盖变量

时间:2015-06-23 12:51:57

标签: c# t4

我有一个3层t4模板继承的结构,我用它来生成配置。目标是生成web.configs

Global.tt (将添加到每个配置文件中):

<customErrors mode="<#= CustomErrors#>
<#+ string CustomErrors = "On"; #> // Set a default value ✓

EnvironmentSpecific.TT 可以覆盖此值:

<#@include file="..\Global.tt" #>
<# CustomErrors = "Off"; #> //Override the default value ✓

到目前为止,一切正常

ServerSpecific.TT

<#@include file="..\EnvironmentSpecific.tt" #>
<# CustomErrors = "On"; #> // Does not override ✕

问题: ServerSpecific.config将关闭CustomErrors,因为它不会覆盖父级中定义的变量。

如果我只想覆盖1个服务器的这个值而不触及其余的环境,我现在唯一的解决方案是从EnvironmentSpecific.TT中删除覆盖(CustomErrors =“On”)并添加它(CustomErrors =“Off / On”)到所有20 ServerSpecific.TT

非常令人沮丧,感觉应该有一个简单的解决方案

0 个答案:

没有答案