Visual C++ Redistributable ランタイムのバージョンが色々混ざる。

Visual C++ 2005、2008、2010 の Redistributable という
ランタイムが入っているのですが、個別に見ると、
バージョンが古いものが幾つか混ざってインストールされていたりします。

例えば、Visual C++ 2008のものだと、
9.0.30729.6161 というのと、9.0.30729.4148 というのが混ざっていたり。

自分では最新版を入れたつもりでも、何かVisual C++で作られたソフトを入れると、
古いものがインストールされてしまう場合があるのです。

これについては問題ないのでしょうか?(安定性やセキュリティの脆弱性とか色々考慮して)
できれば最新版に統一化して、余計なものは削除したいのですが、
ただ、やったとしても、古いバージョンをインストールしていたソフトを再度起動すると、
またそれをインストールしていまうので、キリがないですが…。

そもそも、なぜこういう仕様なのか、
ご存じな方、宜しくご回答お願いします。
 

質問情報


最終更新日 2019年11月04日 表示 31,774 適用先:
回答
回答

昔は、同じ DLL ファイル名で異なるバージョンを混在させることができませんでした。(厳密には 2010 もそうですが)
これによって、アプリケーションが特定のバージョンの DLL で動かしたいというのが難しい状況がありました。(メーカーの怠慢かもしれませんが、動作保障上の理由からそういったことがあった)

そういった事情を踏まえて、複数のバージョンを同時に保持できるサイドバイサイドという仕組みが Windows XP 以降導入され、古いバージョンから新しいバージョンを持つことができるようになっています。

Visual C++ のランタイムは基本的に、発行者ポリシー(この場合は Microsoft が設定したポリシー)によって、より新しいバージョンを使うようにリダイレクトされます。なので、古いバージョンを残していても、基本的に新しいバージョンが読み込まれます。
ただ、アプリケーション側では発行者ポリシーを無効化することもでき、その場合は古いバージョンがないと動きません。

結局のところ、アプリケーションのエンドユーザーとしては、(1)新しいランタイムは入れておく、(2)アプリケーションのインストーラーで入った古いバージョンは気にしない、ということになってしまいますね。

// 理想を目指してみたものの、ユーザーの受けが悪かったせいか、2010 ではなくなってしまいましたね。

この回答は 7 人の役に立ちました

·

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。