これはおそらく哲学的な問題です。
ある種のフレームワークがあり、フレームワークの特定の側面を簡単に使用できるようにする.NETライブラリを提供することにしたとします。フレームワークを使用する各アプリケーションがライブラリのコピーをローカルに保持することを望まないので、GACにそれを置きたいと思います(それが意味する可能性のあるすべてのメンテナンスの問題があっても)。
フレームワークにライブラリをGACにインストールさせるのは非常に簡単なので、各アプリでインストールする必要はありません。ただし、ライブラリの新しいバージョンを作成するときは、フレームワークインストーラーで古いライブラリと新しいライブラリの両方を実行して、一部のアプリケーションで使用されている可能性のある古いライブラリがアップグレードによって削除されないようにする必要があります。
ただし、各アプリケーションがライブラリをGACにインストールする場合は、Windowsインストーラーの参照カウントが開始され、アップグレードシナリオで古いライブラリを持ち歩くことをフレームワークが心配する必要がなくなります。使用中のライブラリは、最後のWindowsインストーラー参照がなくなった場合にのみアンインストールされます。
明らかに、各アプリケーションは、アプリケーションのビルド時にライブラリにアクセスでき、インストーラーに簡単に含めることができます。
誰かが一方と他方の意見/視点/経験を持っていますか?これは厳密には望ましいタイプの質問ではないことを理解していますが(ディスカッションを招くため)、短いディスカッションが役立つと思います。