2012-06-26 18 views
5

私は、ASP.netに実装された大規模なWebアプリケーションを開発しています。アプリケーションの主要部分は、第三者によって実装されたものの多くは他人によって管理されているため、私はそれをあまり支配していません。ASP.net:同じdll/assemblyの2つの異なるバージョンをbinフォルダに含めることはできますか?

私は8つのASP.netカスタムコントロールを実装してDLLを分割してコンパイルし、アプリケーションのbinフォルダに入れました。これらのコントロールは、binフォルダーにも格納されているメインアプリケーションからのDLL(またはアセンブリである必要がありますか?)にリンクする必要があります。 MainAppCore1.dllMainAppCore2.dllとしましょう。これらは.NETコードで管理されているようです。

私の問題は、主なアプリケーションdllのオリジナルバージョンに対して、すべてのコントロールをコンパイルしたので、メインアプリケーションが更新されていて、近いうちに定期的に更新されているようですそれらは読み込まれません。もちろん、私はMainAppCore1.dllMainAppCore2.dllの新バージョンとすべてのコントロールを再コンパイルすることによって、問題を解決することができますが、よりスマートな方法

を探しています私の質問は:それは、2バージョンでの主なアプリケーションのDLLのを維持することが可能です私のコントロールがメインアプリがアップグレードされるたびに(おそらく)動作するように、binフォルダに保存しますか?

私はweb.configファイルを政治的に複雑に編集する必要はありません。

+0

ソース管理のメインアプリケーションはありますか? – IrishChieftain

+0

良い質問:いいえ、それはありません!それについては何もできません。 – Annabel

答えて

4

簡単に言えば、にできません。広範囲に言えば、1つのフォルダに2つのバージョンの.netアセンブリを持つことは、複数のバージョンの.Netアセンブリを実行でき、コントロールアセンブリがGACの特定のバージョンを指すことができる特別なフォルダであるGAC(グローバルアセンブリキャッシュ) 、いくつのバージョンがそこに存在するかに関わらず。 1つの可能な解決策は、サードパーティのベンダーに強くMainCore1.dllの名前を付けてGACにインストールすることです。バージョンが変わるたびにweb.configで特定のバージョンを指し示すことができます。

1

独自のライブラリプロジェクトに8つのカスタムコントロールを置き、メインプロジェクトからそのプロジェクトを参照します。おそらくすべてがソース管理にあるので、「最新のものを入手する」ときにバージョン管理上の問題はないはずです。

+0

メインアプリケーションはソース管理に含まれていません - それ以上のものはサードパーティのソース管理になります。また、複数のクライアントに販売するプラットフォームを提供しているので、自分のコードにリンクするように依頼することはできません。 – Annabel

関連する問題