私たちはVS 2010に転送したばかりのT4テンプレートのセットを持っていますが、それらはコンパイルされますが、もはや同じように動作しません。.Net T4が生成するコード(出力ではない)をどのように表示しますか?
実際に起こっていることを確認するには、のT4が実際のT4変換を生成するために生成する一時的なcsファイルを確認すると便利です。
私たちはVS 2010に転送したばかりのT4テンプレートのセットを持っていますが、それらはコンパイルされますが、もはや同じように動作しません。.Net T4が生成するコード(出力ではない)をどのように表示しますか?
実際に起こっていることを確認するには、のT4が実際のT4変換を生成するために生成する一時的なcsファイルを確認すると便利です。
Visual Studio 2010を使用しているので、テンプレートのカスタムツールをTextTemplatingFileGeneratorからTextTemplatingFilePreprocessorに一時的に変更することもできます。
これは、通常のテンプレート出力ではなく、プロジェクトに直接基礎となるコードを吐き出します。
私はあなたが望むものをどうやって行うのかわかりませんが、Visual Studioのt4コードをどのように進めるかを知っています。あなたは、ビジュアルスタジオの2番目のインスタンスを開始し、最初のインスタンスにアタッチするために、デバッグ - >アタッチを使用してそれをアタッチする必要があります。これにより、2つ目のインスタンスのT4ファイルにブレークポイントを入れることができます。停止すると、そのステップを進んで何が起こっているのかを確認できます。
編集:
あなたはT4をやってする必要がではなく、これが機能するためのコマンドラインツールのVisual Studioで変換します。 .ttファイルをプロジェクトに配置し、プロパティの「カスタムツール」を「TextTemplatingFileGenerator」に設定します。ファイルを保存するように指示するたびに、またはファイルを右クリックして「Run Custom Tool」と発声すると、ファイルが生成されます。詳細は、this MSDN articleを参照してください。
tangible T4 editor無料版では、コードの強調表示とインテリセンスを必要なユースケースの約90%に追加することをお勧めします(.NETフレームワーク用のCore.dllの関数用にのみ追加しています)。有料バージョンは、すべての接続されたアセンブリにインテリセンスを追加します。
Edit2:あなたが本当に使用している一時的なcsファイルが必要な場合は、一時フォルダのcsファイルがデバッガにロードされているのを見ることができます。
私はコマンドラインオプションについて、誤解を招くようなものを削除しました(私たちはDev Studioで動作しています)。 Dev Studioの2番目のコピーからのブレークポイントは機能しませんでした。 VS-2010-copy-1に接続した後、VS-2010-copy-2のttファイルにブレークポイントが表示されます。「ブレークポイントは現在ヒットしません。より多くの情報を提供できますか? –
私はこれまで他のアドインと競合してきた有形T4エディタを試していましたが、アンロードする必要がありました。基本的なテキスト検索オプションはもはや利用できませんでした。 –
@HiTech Magic、私はセットアップに目を通しますが、時間があるまでに数時間かかることがあります。今夜チェックしてください。 –
あなたは
<#@ template debug="true"#>
を設定した場合、生成されたコードは、一時ディレクトリに残されます。私のWindows 7システムでは、それはC:\Users\John Saunders\AppData\Local\Temp
です。
私がいるクライアントは、すべてのマシンでWindows Server 2003を実行しています。ファイルがどこにあるのか、名前が付けられているのか、私は見つけることができますか? –
彼らはランダムな名前を持っています。たぶんC:\ Tempか%TEMP%環境変数の値を見てください。 –
%TEMP%が適切な場所にありました。あなたのソリューションは治療を受け、私は今、それが何を生成しているかを見ることができます。どうもありがとう。 –
+1 +正しい:それは私の投票に勝る利便性のためです。これは、.configがあったところで.cs rightを生成します。クール!どうもありがとう。 –
ソースコントロールを使用しているすべての人に警告する言葉T4ツールを変更すると、前の出力ファイルに削除のマークが付けられます。 –
+1 'EF.Utility.CS.ttinclude'をクラスを含むアセンブリにコンパイルするために使用します。 – Lukazoid