Vin*_*mar 5 c# msbuild t4 visual-studio pre-build-event
我需要将参数从预构建事件传递到 T4 模板。目前我正在使用以下预构建命令来构建我的 T4 模板文件,但我无法将参数传递给它。
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\texttransform.exe" "$(ProjectDir)VersionGenerator.tt"
Run Code Online (Sandbox Code Playgroud)
我需要将参数传递给我的 VersionGenerator.tt 模板。
使用TextTransform.exe命令行开关将参数传递给 t4 模板:-a它接受以下格式的参数:
-a [processorName]![directiveName]!<parameterName>!<parameterValue>
Run Code Online (Sandbox Code Playgroud)
使用时,请考虑:
Host.ResolveParameterValue。-a开关。""周围的开关值。例子
假设您有以下模板Template1.tt:
<#@ template hostspecific="true" language="C#" #>
<#@ output extension=".txt" #>
<# string param1 = this.Host.ResolveParameterValue("", "", "param1"); #>
param1 : <#= param1 #>
Run Code Online (Sandbox Code Playgroud)
以下命令:
texttransform.exe "Template1.tt" -a "!!param1!value1"
Run Code Online (Sandbox Code Playgroud)
结果是:
param1 : value1
Run Code Online (Sandbox Code Playgroud)
预构建事件命令行应该是什么?
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\texttransform.exe" "$(ProjectDir)Template1.tt" -a "!!param1!value1"
Run Code Online (Sandbox Code Playgroud)
想要更多参数吗?
只需在模板中定义它们并使用另一个-a开关传递它们:
texttransform.exe "Template1.tt" -a "!!param1!value1" -a "!!param2!value2"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |