はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【C#】dotnet-t4を用いてT4テンプレートをコマンドラインから処理する

概要

dotnet-t4T4テンプレートをコマンドラインからファイル指定して処理するツールです。

dotnet-t4 is a command-line tool for processing T4 templates, a general-purpose way to generate text or code files using C#.

It's part of Mono.TextTemplating, a modern open-source reimplementation of the Visual Studio T4 text templating engine.

// DeepL翻訳
dotnet-t4は、C#を使ってテキストファイルやコードファイルを生成する汎用的な方法であるT4テンプレートを処理するためのコマンドラインツールです。

Mono.TextTemplatingの一部で、Visual Studio T4テキストテンプレートエンジンをオープンソースで再実装したものです。

t4/dotnet-t4/readme.md at main · mono/t4 · GitHub

インストール手順

.NET Core3.1のインストール

最新のdotnet-t4.NET Core 3.1に対応しているので、.NET Core 3.1をインストールする必要があります。

ちなみに厳密には以下ぽそう。

  • dotnet-t4 v2.0.5以下 は.NET Core2.1
  • dotnet-t4 v2.2.0   は.NET5.0
  • dotnet-t4 v2.2.1以上 は.NET Core 3.1

以下の公式サイトを開き、インストーラーをダウンロード&インストールを行なってください。
dotnet.microsoft.com

.NET Core3.1をインストール

dotnet-t4のインストール

ターミナル(コマンドプロンプト等)より、以下のコマンドを打ち込みdotnet-t4をインストールします。

$ dotnet tool install --global dotnet-t4

NuGet パッケージ署名の認証をスキップしています。
ツール ディレクトリ '/Users/-----/.dotnet/tools' は現在、PATH 環境変数にありません。
zsh を使用している場合、次のコマンドを実行してプロファイルに追加できます:

cat << \EOF >> ~/.zprofile
# .NET Core SDK tools
export PATH="$PATH:/Users/------/.dotnet/tools"
EOF

`zsh -l` を実行して現在のセッションで利用できるようにします。

これは、次のコマンドを実行することによってのみ、現行のセッションに追加できます:

export PATH="$PATH:/Users/--------.dotnet/tools"

次のコマンドを使用してツールを呼び出せます。t4
ツール 'dotnet-t4' (バージョン '2.3.1') が正常にインストールされました。

パスを通す

インストール結果に書いてある通りのコマンドを打ち込むことで、PATH環境変数にセットできます。

$ export PATH="$PATH:/Users/-------/.dotnet/tools"

実際にパスが通っているかどうかは以下のコマンドを打ち込んでみてください。

$ t4 --help

使い方

$ t4 <.ttファイルへのパス>
// サンプル
$ t4 ./sample.tt


もう少し詳しく書くと、以下の構成になっています。詳細はリンクをみてください。

$ t4 [options] [template-file]

github.com

-cをつけると実行時テンプレートとして実行し、つけないとデザイン時テンプレートになってるぽいです。