2011-12-19 19 views
2

私のプロジェクトがビルドされているが、他のプロジェクトはビルドされていないときに.ttファイルの1つを自動的に実行したいと思います。 TransformOnBuildプロパティをプロジェクトの代わりに特定の.ttファイルに設定することは可能ですか?これを達成するための別の方法ですか?テンプレートあたりのテンプレートt4 TransformOnBuild設定

答えて

6

私が事前に必要な.ttファイルを生成するステップをカスタムビルドを追加することを決定した:

<Exec Command="&quot;%PROGRAMFILES(x86)%\Common Files\microsoft shared\TextTemplating\10.0\TextTransform.exe&quot; template.tt -out template.cs" /> 

この方法でも、-aを使ってテンプレートにプロジェクトファイルで定義したパラメータを簡単に渡すことができました。私が直面していた別の問題。

+0

+1です。私は完全にTextTemplatingを忘れてしまった。 VSなしでビルド環境をサポートするためにTextTransform.exe(または他のコンポーネント)を配布する必要がある場合は、MonoDevelopを見たいかもしれません。それはMIT /オープンソースライセンス互換のT4実装を提供します。 – Kallex

+0

これは私がそれを働かせた唯一の方法です...ありがとう!! – PSL

0

これを達成する別の方法として応答します。

  1. TextTemplatingFilePreprocessor は(ここでは、より良いdescibed: http://www.olegsych.com/2009/09/t4-preprocessed-text-templates/を)として、あなたはあなたの.ttを変更することができます。
  2. ビルド前のイベントでプリプロセッサを実行する小さなコマンドラインツールを作成します。

最初のリンクは、この例を含むが、それは前処理されたクラスの使用について説明します。 http://blogs.clariusconsulting.net/pga/vs10-beta-1-t4-preprocessing-part-2/

+0

より高度なシナリオを実行する必要がある場合は、前処理されたテンプレートが有効になりますが、一般的な必要機能を実現するためのOP回避策はずっと簡単です。 – Kallex

+0

これは、(死んだ)リンクに頼るのではなく、回答が自己完結型でなければならない理由の良い例です。回避策は – beattyac

関連する問題