Using TextTransform.exe
there's a command-line switch for passing parameters to t4 templates: -a
which accept parameters in the following format:
-a [processorName]![directiveName]!<parameterName>!<parameterValue>
When using, consider:
- You can resolve the parameter by
Host.ResolveParameterValue
.
- processorName and directiveName are optional and you can omit them.
- You always need type the '!' marks, even if you omit the optional processor and directive names.
- For each parameter that you want to pass, you need one
-a
switch.
- You can use
""
around switch value.
- For more information about Take a look at Generate files with the TextTransform utility.
Example
Assuming you have the following template Template1.tt
:
<#@ template hostspecific="true" language="C#" #>
<#@ output extension=".txt" #>
<# string param1 = this.Host.ResolveParameterValue("", "", "param1"); #>
param1 : <#= param1 #>
The following command:
texttransform.exe "Template1.tt" -a "!!param1!value1"
Results in:
param1 : value1
What should be Pre-build event command line?
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\texttransform.exe" "$(ProjectDir)Template1.tt" -a "!!param1!value1"
Want more parameters?
Just define them in template and pass them usinganother -a
switch:
texttransform.exe "Template1.tt" -a "!!param1!value1" -a "!!param2!value2"