2011-12-08 3 views
0

T4テンプレートを使用して、私のソリューションで使用されているすべてのアセンブリを試して出力しています。しかし、.ttファイルでは、ロードされたすべてのアセンブリは、ビルドマネージャが必要とするすべてのアセンブリであると見なされるため、親プロジェクトまたはソリューションとは何の関係もありません。現在の実行アセンブリではなく、t4テンプレートを使用している場合、ソリューションからすべてのアセンブリを取得

.ttファイルの解析時に、現在のソリューションのすべてのアセンブリを繰り返し処理したいと考えています。 これを達成する方法はありますか?

答えて

2

残念ながら、T4内の現在のソリューションのアセンブリに反映することはできません。これは、いったん読み込まれたアセンブリは、AppDomain全体をアンロードするまでアンロードすることができないためです。実際には、これは最初に反映した後、アセンブリが書き込みロックになり、Visual Studioを終了することによってのみロックを解除できることを意味します。

考えられる回避策の1つは、here(サンプルコードを含む)のように、リフレクションの代わりにイントロスペクションを使用することです。

+0

これはVS 2010 SP1ではなくなりました。http://blogs.msdn.com/b/garethj/archive/2010/12/11/vs2010-sp1-t4-no-longer-locks-assemblies- in-memory.aspx – daveaglick

関連する問題