私がいるところでは、ネットワーク共有上にある一連のアセンブリの機能を使用する実行可能なプログラムが多数あります。たとえば、共通のシステム ログ、DB 接続文字列、いくつかの共通のビジネス オブジェクトや関数への書き込みなどです。等
このセットアップが気に入っているのは、バグ修正と新機能を簡単にデプロイできるためです。共有ドライブ上のアセンブリを更新するだけで、それらを使用するすべてのアプリが最新になります。バイナリ互換性を破る必要がありますか? これは簡単なことではありませんが、それでも大したことではありません。新しいバージョン番号を持つ新しいフォルダーを追加するだけです。Subversion は各バージョンがどこにあるかを認識しているため、各バージョンで複製されたコードにバグ修正をデプロイすることができます。いくつかの変更を 1 つの新しいセットにまとめることができるように、それが本当に必要かどうかを確認するために最初に議論が行われる可能性もありますが、これを行う必要があることは、現時点ではほとんどありません。
これをサポートするために、共通ライブラリの参照が自動的に含まれるカスタム プロジェクト テンプレートがいくつか用意されています。
最後に、問題の要点を説明します。私たちが行っていることの多くは、多数の小規模な従来の従来の ASP ページをサポートすることです。これらは、新しい開発とともに、ゆっくりと .Net にも移行しています。私たちは、他のアプリケーションが使用するのと同じサポート フレームワークをこれらの Web アプリに使用できるようにしたいと考えています。従来の知恵では、ASP.Net アプリは GAC の外部にあるアセンブリや、それ自体の小さな仮想ディレクトリを参照することはできないと言われています。したがって、ASP.Net ページで共通コードを使用するには、Web サーバーとすべての開発者マシンの GAC にコードをインストールし、このコードへのすべての更新がそれらの場所にも伝播されるようにするのが最善の方法です。私たちはそれが不快だと思います。
ASPNet アカウントに、共通コードが存在するネットワーク共有から読み取るために必要なアクセス許可を与えることができ、これらのアプリ用のカスタム プロジェクト テンプレートを作成することを考えると (これにより、Web にいくつかの設定が自動的に含まれる可能性があります)。たとえば、通常のasp.netページクラスを出発点として構成またはサブクラス化します)結局、これらのアセンブリを現在の場所から参照できるかもしれないという型にはまらない知恵を知っている人はいますか?