使用 TextTransform 实用工具生成文件

TextTransform.exe 是一种命令行工具,可用于转换文本模板。 调用 TextTransform.exe时,将文本模板文件的名称指定为参数。 TextTransform.exe 调用文本转换引擎并处理文本模板。 通常从脚本调用 TextTransform.exe。 但是,这通常不是必需的,因为可以在 Visual Studio 或生成过程中执行文本转换。

注释

如果要在生成过程中执行文本转换,请考虑使用 MSBuild 文本转换任务。 有关详细信息,请参阅 生成过程中的代码生成。 在安装了 Visual Studio 的计算机中,还可以编写可转换文本模板的应用程序或 Visual Studio 扩展。 有关详细信息,请参阅 使用自定义主机处理文本模板

TextTransform.exe 位于以下目录中:

\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE

适用于专业版,或

\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE

企业版。

\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE

专业版,或

\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE

企业版。

Syntax

TextTransform [<options>] <templateName>

参数

参数 说明
templateName 标识要转换的模板文件的名称。
选项 说明
-输出<文件名> 将转换的输出写入到的文件。
-r<程序集> 用于编译和运行文本模板的程序集。
-u<namespace> 用于编译模板的命名空间。
-我<includedirectory> 包含指定文本模板中包含的文本模板的目录。
-P<referencepath> 用于搜索文本模板中指定的程序集或使用 -r 选项的目录。

例如,若要包含用于 Visual Studio API 的程序集,请使用

-P "%VSSHELLFOLDER%\Common7\IDE\PublicAssemblies"
-dp<processorName>!<className>!<assemblyName|codeBase> 可用于在文本模板中处理自定义指令的指令处理器的名称、全类型名称和程序集。
-a [processorName].[directiveName].<参数名称>.<参数值> 指定指令处理器的参数值。 如果仅指定参数名称和值,该参数将可供所有指令处理器使用。 如果指定指令处理器,则参数仅适用于指定的处理器。 如果指定指令名称,则参数仅在处理指定的指令时才可用。

若要从指令处理器或文本模板访问参数值,请使用 ITextTemplatingEngineHost.ResolveParameterValue。 在文本模板中,将hostspecific包含在模板指令中,并在this.Host上调用消息。 例如:

<#@template language="c#" hostspecific="true"#> [<#= this.Host.ResolveParameterValue("", "", "parameterName") #>]

始终键入“!”标记,即使省略可选的处理器和指令名称。 例如:

-a !!param!value
-h 提供帮助。