2009-07-20 14 views
0

ソフトウェアベンダーのAPIを使用してCMSサーバーに対して.net Webサイトを作成しています。プロジェクトに.net dll依存関係を追加する

問題は、CMSソフトウェアのすべてのバージョンで、私は対処しなければならない異なるDLL(ほとんどバージョン管理外)があることです。

今、私はこれらのDLLに依存する再利用可能なサーバーコンポーネントをいくつか構築していますが、異なるDLLバージョンの異なるWebサイトに対してこれらのコンポーネントを使用したいので、依存関係を切り替える方法が必要です。

すべての依存関係を1つのDLLにバンドルする(元の名前空間を保持する)ことは可能ですか?

答えて

1

Microsoft ResearchのILMergeは、複数のアセンブリを1つにまとめ、元の名前空間を維持できるようにします。

+0

このツールは優れた仕事をします。結合できないアセンブリがいくつかありますが、有望です。 – Pablo

0

名前空間の衝突があると、最終的にDLLを動的にロードすることが強制される可能性があります。これを行うには、アセンブリクラスと適切なエントリポイントを取得するための少しの反射を使用します。

要するに、APIコンパイル時に依存せず、動的に(リフレクションによって)呼び出されたDLLを使用して前記ラッパーを実装する独自のラッパーを作成します。私はこれがC#4.0ではより簡単だと確信していますが、1.0でも問題なく動作します。

関連する問題