2009-08-12 2 views
0

私は最近、私たちのアプリ(Thanks Oleg)でいくつかのデータアクセス関連のクラスを生成するためのクイックT4テンプレートを実装しました。私が直面している1つの問題は、テンプレートがソリューションの一部であるXMLファイルからデータを読み取る必要があることです。T4、Visual Studio 2008のXMLデータソースと相対パス

明らかに、XMLデータへのパスは相対的でなければなりません。しかし、私が昨日最初に実装したときは、ソリューションルートの親のから始まったように見えました。今日、ソリューションルートから開始したいと考えていました。 解決ルートが理にかなっていますが、公式の答えがあれば誰かが不思議でした。

誰かが、T4を使用してcode-genのファイルからデータを読み取る、より正式な方法を持っている可能性があります。

ありがとう、

Eric。

答えて

2

Olegは、この問題に対処するための依然の友人です。彼の投稿Understanding T4: <#@ template #> directive、特にhostspecificパラメタを記述するセクションを見てください。

テンプレートディレクティブでhostspecific = "True"と設定すると、T4コードでHostプロパティが使用できるようになります。 Hostプロパティの型はITextTemplatingEngineHostで、他の文書ではあまり書かれていないものの中で、テンプレートファイルの場所を基準にしたパスを解決するために使用できるResolvePathメソッドが宣言されています。

もう一度、オレグに小道具!

+0

Dan、ご返信ありがとうございます。あなたのおかげであなたに感謝してくれないことを謝ります。私はちょうど(または気づいた)返信を得ていないし、今何か他のものを探している間にそれを見つけた。それは私の質問に答えると私はあなたの時間を感謝します。 –

関連する問題