2009-10-28 17 views
9

サードパーティのアセンブリを使用するMSBuildタスクを作成しました。依存関係を持つカスタムMSBuildタスク

私のプロジェクトでこのタスクを使用すると、MSBuildはサードパーティのアセンブリを読み込むことができないと訴えています(驚くことではありません)。

MSBuildで使用できるように、サードパーティのアセンブリを配置する場所を指定します。私はプロジェクトの参照を成功させることなくそれらに追加しようとしました。

答えて

9

問題を非常にうまく表現できたかどうかは不明ですが、解決策が見つかりました。私.projファイルで

、私は次の構文で私のカスタムタスクを参照する...

<UsingTask AssemblyFile="..\lib\MyCompany.MSBuild\MyCompany.MSBuild.dll" TaskName="CreateDatabase" /> 

マイCreateDatabaseタスクは、さまざまなサードパーティのアセンブリに依存しています。しかし、これらのうちのいくつかはリフレクションによってのみ参照されるため、デフォルトでは ".. \ lib \ MyCompany.MSBuild"フォルダには含まれていません。

私は、タスクを呼び出す.projファイルと同じディレクトリに必要なアセンブリを配置することで、作業を開始しようとしていました。

しかし、私がしなければならなかったことは、参照されたタスクディレクトリ ".. \ lib \ MyCompany.MSBuild \"にアセンブリを置くことでした。

シンプル!

1

GAC(Global Assemby Cache)に追加することができます。これは強く指定されている場合にのみ機能します。

また、プロジェクトに参照を追加したときにcopy local = trueを指定していることを確認することもできます。

関連する問題