我计划使用T4模板生成配置文件。 我有一个带有基本设置的main.tt文件。 每个环境都有不同的.tt文件,包括main.tt 我想要实现的一件事是如何确保每个特定于环境的.tt文件覆盖main.tt变量。 我需要这样做,因为我想确保在环境特定的.tt文件中覆盖所有值,否则T4模板将获取main.tt值。 我想避免从main.tt中选择任何丢失的环境值 我们如何从main.tt指定强制覆盖?
<#@ template language =“C#”#> <#@ output extension =“。config”#> ” providerName =“System.Data.SqlClient”/> ” providerName =“System.Data.SqlClient”/> <#+ string NorthwindConnectionString =“Data Source = .; Initial Catalog = Northwind; Integrated Security = True”; string PubsConnectionString =“Data Source = .; Initial Catalog = Pubs; Integrated Security = True”;
如何确保NorthwindConnectionString和PubsConnectionString在所有特定于环境的.tt文件中都有特定值?
答案 0 :(得分:0)
以下是hot to generate config files with T4的示例。 T4中没有特殊功能可以使这些字段成为必需。您可以在主模板的代码中检查它们,或者让它抛出NullReferenceException,这就是我认为这个例子的作用。
答案 1 :(得分:0)
< ##>内的任何内容block基本上只是.NET代码,那么如果没有T4,你将如何解决这个问题呢?像这样的东西可能会正常工作:
<#
if (NorthwindConnectionString.Equals(
"Data Source=.;Initial Catalog=Northwind;Integrated Security=True"))
{
throw new CustomException("NorthwindConnectionString needs
to be overriden in environment specific .tt file!");
}
#>