VS C ++プロジェクトでT4コード生成テンプレートを使用するには?
-
20-08-2019 - |
質問
T4テンプレートファイルは、C#プロジェクトの下でIDEによって自動的に認識されているが、私は、彼らが(ファイルを作る使用以外の)C ++のプロジェクトに統合することができる方法についての見当もつかないます。
任意のアイデア?
解決
T4テンプレートファイルは、C ++のプロジェクトに統合することができますが、それは、C#/ VBプロジェクトよりも少し多くの作業です。あなたのC ++プロジェクトで新しいテキストファイルを作成し、それを.tt拡張子を与えます。その後、通常のようにテンプレートを作成します。 C ++プロジェクトでは、それがテンプレートを変換するために取得するにはさらなる研究が必要です。私は仕事にそれを得た間に合わせの方法は、カスタムビルドステップを追加することでしたし、それが「C:\ Program Files \ Commonファイル\ Microsoft共有\ TextTemplating 1.1 \ TextTransform.exe \」を呼び出してい直接。私が見つけたもう一つの方法は、カスタムのMSBuildタスクを追加することでした。手順はここで見つけることができますの
こののページでは、T4コードの使用方法の詳細や他のページへのいくつかの良いリンクがあります世代ます。
他のヒント
MSBuildのタスクが動作しません。コンパイルされたTTを取得する最も簡単な方法は、以下のようなカスタムビルドステップを追加することです..
"C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe" -out "$(ProjectDir)\VSProject.cpp" -I "$(ProjectDir)" "$(ProjectDir)\VSProject.tt"
私は、上記のMSBuildタスクのソリューションを調査し、数時間を費やし、それは、マネージコードのためにかなり良いですが、私はC ++(バーEEKをcsprojするvcproj変換)
のためにそれを使用する方法を参照することはできませんのVisual Studio 2017のために(そしておそらく2015年?)
TextTransform.exe
のルートフォルダ、例えば:ファイルdevenv
が新しいディレクトリに移動されたとして、他の回答に記載されているのコマンドは、部分的に間違っています。
C:\Progra~1\Visual Studio 2017\Enterprise\Common7\IDE
コマンドは現在、次のように更新する必要があります。
"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)xxx.cpp" "$(ProjectDir)xxx.tt"
xxx
はyoutは.tt
テンプレートファイルのファイル名です。