5

ASP.netに実装された大規模なWebアプリケーションに取り組んでいます。アプリケーションの主要部分は、その多くがサードパーティによって実装されていますが、他の人によって管理されているため、私はそれをあまり制御できません。

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

私の問題は、メインアプリケーションが更新されていることです。バグの問題により、メインアプリのdllの元のバージョンに対してすべてのコントロールをコンパイルしたため、近い将来定期的に更新されるように見えます。ロード。明らかに、新しいバージョンに対してすべてのコントロールを再コンパイルすることで問題を解決できますが、よりスマートな方法を探していMainAppCore1.dllますMainAppCore2.dll

私の質問は、メインアプリのdllの2つのバージョンをbinフォルダーに保持して、メインアプリがアップグレードされるたびに(おそらく)コントロールが機能し続けるようにすることは可能ですか?

web.configちなみに、これは政治的に複雑になるので、ファイルを編集する必要はありません。

4

2 に答える 2

4

簡単に言えば、できません。大まかに言えば、1つのフォルダーに2つのバージョンの.netアセンブリを含めることは、特別なフォルダーであるGAC(グローバルアセンブリキャッシュ)フォルダーでのみ可能です。このフォルダーでは、複数のバージョンの.Netアセンブリを実行でき、コントロールアセンブリはGACの特定のバージョンを指すことができます。 、そこに存在するバージョンの数に関係なく。考えられる解決策の1つは、サードパーティベンダーにMainCore1.dllに厳密な名前を付けて、バージョンが変更されるたびにGACにインストールするように依頼することです。その後、web.configで特定のバージョンを指定できます。

于 2012-06-26T13:19:14.253 に答える
1

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

于 2012-06-26T13:16:35.973 に答える