"DLL 地獄" への対策が新たな地獄を生む

DLL といえば「PC の中に 1 つだけインストールして、どのアプリケーションもそれを呼び出す」という使われ方が典型的……だったのは昔の話。
「アプリケーションをインストールしたら DLL が書き換わり、それまで動いていた別のアプリケーションが動かなくなった」という、いわゆる "DLL Hell (DLL 地獄)" を避けるため、アプリケーションのインストール先に、そのアプリケーションで必要なバージョンの DLL を置く、いわゆる side-by-side のスタイルが、最近では増加している。特に、.NET Frameworkドキュメンテーションなんかでは、side-by-side がばっちり推奨され、解説もされている。
しかし、上記の脆弱性に関しては、side-by-side の欠点が表出した形になっている。インストールされた各コンポーネントについて修正作業をしなければならないが、コンポーネントがいくつ、どこにインストールされたか確認する確実な方法がない。
(現状の) side-by-side インストールはインストールした後のことまで考えていない、ということが露呈してしまったわけだ。

追記: side-by-side って言葉の使い方間違ってますねコレ。よりちゃんと知りたい人は、NyaRuRu さんの下記記事とそのリンク先を参照のこと。上で書いた内容についても、ずっと素晴らしくまとめられています。

nyaruru.hatenablog.com