2011-08-30 16 views
3

私は、それぞれが共有コアdllを使用する完全に独立した2つのWebアプリケーションを持っています。デプロイメントとバージョン管理の目的のために、どちらのアプリケーションにも "コア" dllのコピーを1つ配布したいと思っています。また、必要に応じて、展開時にコアDLLをオプションとして使用する機能をサポートできるようにしたいと考えています。つまり、app1はコアdllバージョン1を使用し、app2はコアdllバージョン2を使用できます。これらの機能をサポートするために、パス単位で実装クラスを解決するDIコンテナはありますか? IOW、app1はc:\ corev1 \ core.dllの実装クラスを取得し、app2は簡単な例としてc:\ corev2 \ core.dllの実装クラスを取得しますか?私は、すべてのアプリケーションが独立している展開戦略のために、core.dllへの直接参照を避ける必要があります。DI外部DLLの使用

答えて

2

これを行うにはDIまたはコンテナは必要ありません。 Assembly Versioningは、そのままの状態で.NETでサポートされます。

アプリケーションごとにcore.dllと残りのアプリケーションバイナリを一緒に配備し、それぞれを独立してバージョンアップするだけです。

+0

これは良い提案であり、私が与えた過度の簡略化されたシナリオに対して有効です。 MEFは私の問題を解決し、問題の状態としてdllを直接参照するのを避けることを可能にしました。私たちの開発プロセスと現行のCIプロセスにはいくつかの作業が必要ですが、最終的には簡略化されたアプローチを使用する方向に向かっていますが、今はできません。 – codeEmitter

3

DIは必ずしもDIである必要はなく、プラグイン可能であるように思えます。 MEFをご覧ください。

関連する問題