VS C ++プロジェクトでT4コード生成テンプレートを使用するには?

StackOverflow https://stackoverflow.com/questions/496214

  •  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コードの使用方法の詳細や他のページへのいくつかの良いリンクがあります世代ます。

他のヒント

これはvcprojファイル(C ++)であるのでvcbuildが使用されているように、

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テンプレートファイルのファイル名です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top