Share via


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

Professional edition 向け、または

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

Enterprise Edition 向け。

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

Professional edition 向け、または

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

Enterprise Edition 向け。

構文

TextTransform [<options>] <templateName>

パラメーター

Argument 説明
templateName 変換するテンプレート ファイルの名前を識別します。
オプション 説明
-out<filename> 変換の出力の書き込み先のファイル。
-r<assembly> テキスト テンプレートをコンパイルして実行するために使用されるアセンブリ。
-u<namespace> テンプレートをコンパイルするために使用される名前空間。
-I<includedirectory> 指定したテキスト テンプレートに含まれるテキスト テンプレートを格納しているディレクトリ。
-P<referencepath> テキスト テンプレート内で指定されたアセンブリを検索する、または -r オプションを使用する場合の対象ディレクトリ。

たとえば、Visual Studio API に使用するアセンブリを含めるには、次を使用します。

-P "%VSSHELLFOLDER%\Common7\IDE\PublicAssemblies"
-dp<processorName>!<className>!<assemblyName|codeBase> テキスト テンプレート内のカスタム ディレクティブの処理に使用できるディレクティブ プロセッサの名前、完全な型名、およびアセンブリ。
-a [processorName]![directiveName]!<parameterName>!<parameterValue> ディレクティブ プロセッサのパラメーター値を指定します。 パラメーターの名前と値だけを指定した場合、パラメーターはすべてのディレクティブ プロセッサで使用できるようになります。 ディレクティブ プロセッサを指定した場合、パラメーターは、指定されたプロセッサでのみ使用できます。 ディレクティブ名を指定した場合、パラメーターは、指定されたディレクティブが処理されている場合のみ使用できます。

ディレクティブ プロセッサまたはテキスト テンプレートからパラメーター値にアクセスするには、ITextTemplatingEngineHost.ResolveParameterValue を使用します。 テキスト テンプレートで、テンプレート ディレクティブに hostspecific を含め、this.Host でメッセージを呼び出します。 次に例を示します。

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

オプションのプロセッサ名とディレクティブ名を省略した場合でも、必ず '!' マークを入力してください。 次に例を示します。

-a !!param!value
-h ヘルプを提供します。