gpt4 book ai didi

c# - 如何使用预构建事件命令行将参数传递到 T4 模板

转载 作者:行者123 更新时间:2023-12-02 03:15:10 25 4
gpt4 key购买 nike

我需要将参数从预构建事件传递到我的 T4 模板。目前我正在使用以下预构建命令来构建我的 T4 模板文件,但我无法将参数传递给它。

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\texttransform.exe" "$(ProjectDir)VersionGenerator.tt"

我需要将参数传递给我的 VersionGenerator.tt 模板。

最佳答案

使用 TextTransform.exe 有一个命令行开关,用于将参数传递给 t4 模板:-a,它接受以下格式的参数:

-a [processorName]![directiveName]!<parameterName>!<parameterValue>

使用时,请考虑:

  • 您可以通过 Host.ResolveParameterValue 解析该参数.
  • processorName 和directiveName 是可选的,您可以省略它们。
  • 您始终需要输入“!”标记,即使您省略了可选的处理器和指令名称。
  • 对于您要传递的每个参数,您需要一个 -a 开关。
  • 您可以在开关值周围使用 ""
  • 有关“看看”的更多信息,请访问 Generate files with the TextTransform utility .

示例

假设您有以下模板Template1.tt:

<#@ template hostspecific="true" language="C#" #>
<#@ output extension=".txt" #>
<# string param1 = this.Host.ResolveParameterValue("", "", "param1"); #>
param1 : <#= param1 #>

以下命令:

texttransform.exe "Template1.tt" -a "!!param1!value1" 

结果:

param1 : value1

预构建事件命令行应该是什么?

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\texttransform.exe" "$(ProjectDir)Template1.tt" -a "!!param1!value1"

想要更多参数?

只需在模板中定义它们并使用另一个 -a 开关传递它们:

texttransform.exe "Template1.tt" -a "!!param1!value1" -a "!!param2!value2"

关于c# - 如何使用预构建事件命令行将参数传递到 T4 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59284415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com