web-dev-qa-db-ja.com

なぜそれほど多くの異なるVisual C ++再頒布可能ファイルがあるのですか?

ゲームやOpenOfficeをインストールするたびに、インストールルーチンの一部で、システムに既にインストールされている他の10個のVisual C++ 2005/2008再頒布可能パッケージがインストールされます。

(同じように感じられる)非常に多くの異なるバージョンが必要なのはなぜですか?

19
Tomalak

Visual C++再頒布可能パッケージは、Visual C++を使用してソフトウェアを作成するアプリ開発者が出荷するコンポーネントです。アプリ内でMicrosoftの十分にテストされ広く使用されているコードを使用することで、開発者は一般的に使用されるコード(sinやcosの数学関数、テキストボックスやボタンなどの一般的なユーザーインターフェイス要素の処理など)を書くことを避け、開発コストを節約できます。アプリ開発者が使用するランタイムバージョンの断片化により、多くのアプリをインストールすると、Visual C++再頒布可能ファイルの長いリストが表示されます。 1つのVisual C++再頒布可能パッケージをアンインストールすると、数メガバイトのディスク領域を節約できる可能性がありますが、そうすると、一部のアプリが破損するおそれがあります。

プログラマーはVisual C++ランタイムを最新の状態に保つためにMicrosoftに依存しているため、Microsoftは再頒布可能ファイルのセキュリティ更新をリリースしますが、プログラマーの要求により、Visual C++再頒布可能ファイルは互いに置き換えられず、互換性のために古いバージョンが保持されます。一部のアプリは、アプリが公開されたとおりに実行されることを確認するために必要なVisual C++ dllのバージョンに非常に特化しています。作成者は、新しいランタイムとのアプリの互換性をテストするまで、最新のランタイムへの更新を保留します。これは、Microsoftが再頒布可能パッケージのアップデートをリリースした後、怒っている顧客からの数千の通話を防ぐ1つの方法です。ただし、ほとんどのアプリは同じメジャーバージョンの最新版にバインドされます。これはデフォルトの動作であり、即時かつ簡単なセキュリティ更新の利点は、再配布可能な更新によって提供される変更を壊すリスクを上回ります。

Microsoftはまた、アプリ開発者がどちらを選択するかわからないため、多くのVisual C++ランタイムをサポートする必要があります。同じアプリ内でも複数のバージョンのVisual C++再頒布可能パッケージが必要になる場合があります。たとえば、Visual C++ 2008再頒布可能パッケージに依存するアプリがVisual C++ 2005再頒布可能パッケージに依存するコンポーネントを使用する場合、アプリの開発者は両方のバージョンのVisual C++再頒布可能パッケージを出荷する必要があります。 64ビットコンピューターでは、Visual C++再頒布可能パッケージが一般的に使用されるコンポーネントであり、32ビットアプリと64ビットアプリの両方(または、 64ビットシステムにインストールされた32ビットコードと64ビットコードの両方)。

再配布可能ファイルと同じインストール日付のアプリを探すことで、おそらく再配布可能ファイルをインストールしているアプリを見つけることができますが同じ再配布可能ファイルに依存している、より新しいインストール日付を持つ他のアプリの数はわかりません。正確な依存関係を見つけるために費やす時間は、再配布可能ファイルをアンインストールすることで節約できる数メガバイトの価値がない可能性が最も高いでしょう。

22

理由は同じではないからです。最初に、MSVC++のすべてのバージョンに独自のバージョンのランタイムライブラリが付属していることを理解する必要があります。 32ビット版と64ビット版もあります。また、ランタイムライブラリの更新バージョンをもたらすサービスパックもあります。

インストール数が10の場合、それらの名前をリストできますか?私はあなたが4(2005では32ビットと64ビット、2008では同じ)を超えるべきではないと思います。サービスパックは、更新されていないバージョンを置き換える必要があります。

3
AndrejaKo

C++再頒布可能ファイルには多くのバージョンがあります。どのプログラムがファイルを使用するかを正確に把握していない場合は、1つでも削除してください。

多くのプログラムがインストールされている人は、それらの多くのバージョンを持っています。マイクロソフトでは、コードの再配布を許可しているため、開発者は毎回新しいコードを作成するのではなく、そのうちの1つをポップするだけで済みます。

彼らは小さく、心配するほど大きくありません。それらの多くはKBのみで、一部はMBであり、GBのプログラムよりも優れています。

そこにそれらの多くが表示されるのは喜ばしいことだと私は知っています(私はそれらを21個持っています)。また、プログラム開発者が個々のプログラムにラベルを付けた場合もいいでしょうが、ラベルを付けた場合はさらに数百になります。現在、プログラムはそれらを便乗させています。これにより、プログラムは新旧両方のコーディングを使用できます。

私はコンピュータネットワーキングの学位を取得しています。自分のコンピュータに対して行うことは、コンピュータに対して行うことは何もしません

1
Kamiko