2011-01-25 15 views
1

親プロジェクトのすべてのアセンブリ参照(およびその依存関係)を自動的に取得するT4テンプレートを使用できますか?T4ですべてのアセンブリ参照を自動的に取得

私が見たすべての例は、参照を手動で定義するために<#@ assembly#>または<#@ VolatileAssembly#>を使用しています。たとえば、プロジェクトとテンプレートの両方でSystem.Coreを参照する必要があります。私はこの重複を避けたい:私はテンプレートではなくプロジェクトで参照を定義したい。

これはまた、プロジェクト自体への参照を追加し、テンプレートに追加のアセンブリを参照させ、必要に応じてアセンブリのロックを回避するためにシャドウコピーを追加する必要があります。

this was possible before VS2010と思われますが、その動作を再実装/復元することは可能ですか?

答えて

1

T4は実際にVS2010の前にプロジェクトの依存関係を拾いました。 .NET 2.0プロジェクトのコードを生成するために使用されていたとしても、これらの懸案事項を分離し、.Net 4.0をテンプレートでよりよくサポートするために、意図的にランタイム参照から設計時の参照を分離することを選択しました。

ホストをServiceProviderとして使用してDTEを取得したカスタムディレクティブプロセッサを作成し、解決策/プロジェクトを参照してその参照を見つけることによって、VS2010以前と同様のことを行うことができます。しかし、それはかなりうまくいくはずです。

私は、あなたのプロジェクトがテンプレートに必要とする依存関係にどのような依存関係があるのか​​を知りたいと思っています。たとえば、WinFormsを使用するプロジェクトでは、通常、テンプレートコードにWinFormsは必要ありません。 System.Coreのような基本は通常両方にありますが、その共有セットはしばしば大きく見えないので、重複は重大な問題ではありません。

大きな共有セットがありますか?

+0

T4を使用して軽量DSL(テキスト形式、SDK DSLツールで使用されているグラフィック形式ではない)を作成しようとしています。使用されている式の種類を分析して操作する必要がありますタイプはプロジェクトで参照されています)、そうです、それは大きな共有セットです... –

関連する問題