なぜ非常に多くの異なるVisual C ++再頒布可能パッケージがあるのですか?


19

ゲーム、またはOpenOfficeをインストールするたびに、インストールルーチンの一部は、システムに既にある10個のすぐ隣に、再配布可能なVisual C ++ 2005/2008をインストールします。

(同じように感じる)さまざまなバージョンが必要なのはなぜですか?


私は最近OpenOfficeをWindowsにインストールしませんでしたが、AFAIK OO.org pure Javaをインストールしました。それは不安です!
ラジュエット

2
OO.orgは、実際にはほとんどがJavaコンポーネント(ソース)を備えたC ++ です。
10

これは珍しいことではありません。追加/削除プログラムでそれらを視覚的にロールアップする方法があればいいので、すべてを見る必要はありません。
ケルタリ

回答:


22

Visual C ++再頒布可能パッケージは、Visual C ++を使用してソフトウェアを作成するアプリ開発者によって出荷されるコンポーネントです。開発者は、Microsoftの十分にテストされ、広く使用されているコードをアプリ内で使用することで、一般的に使用されるコード(テキストボックスやボタンなどの一般的なユーザーインターフェイス要素の処理など)の記述を避けることで、開発コストを節約します。アプリ開発者が使用するランタイムバージョンの断片化のため、多くのアプリをインストールすると、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ビットコードの両方)。

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


これは非常に良い答えです。開発者は特定のバージョンもターゲットにしています。リリースAの機能は、リリースBで同じように動作することは保証されていません。もちろん、実際には、リリースB以降に存在する新機能Feature Cと、リリースCは、開発者が直面する真の問題です。そのため、使用したバージョンを配布し、そのバージョンのみを使用するようにソフトウェアをコンパイルします。この特定のケースでは、同じバージョンのC ++ Redistributablesの複数の日付リリースが可能です(つまり、2005年2月、3月、4月)。
ラムハウンド

3

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

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


1
私はこれが正しいと信じています-私が知っているのは4つだけであり、ここでの改善はそれらが並行してインストールできるようになったことです。必要なビルドは、アプリケーションがコンパイルに使用されたランタイムに静的または動的にリンクされているかどうかによって異なります。これらは平和的に共存でき、比較的小さいものです。
jtreser

VS2010でさらに2つ!それでも、OPに10がある場合、それは多すぎます。
AndrejaKo

確かに、私はそれらを数えていません。職場のマシンには2つ(2008 32ビットと64ビット、両方とも9.0.something)があります。私も家で数えます。
トマラック

3
12個リストされています。2005(2)(記載されている指定なしまたはバージョン)2008(8)のx32 / x64の9.0.21022、9.0.30729.17、9.0.30729.4148、9.0.30729.6161 2010(2)X32 / x64の10.0.40219
ダレンホール

1
@DarrenHall-そんなにたくさんあるのは普通です。各バージョンには違いがあり、それらの特定のバージョンを対象としたアプリケーションがあります。
ラムハウンド

1

C ++再配布可能ファイルには多くのバージョンがあります。どのプログラムがファイルを使用するか正確に知らない限り、1つでも削除し、それを使用したすべてのプログラムは再インストールしない限り永久に無効になります。

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

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

それらの多くがそこにあるのを見て私はそれらが増えていることを知っています(私はそれらの21を持っています)が、それらを放っておけば、それらを削除するとあなたのプログラムはシャットダウンします。また、プログラム開発者が個々のプログラムのラベルを付けてくれればいいのですが、もしそうすれば、さらに何百もあるでしょう。現在、プログラムはそれらを便乗させます。これにより、プログラムは新旧両方のコーディングを使用できます。

コンピューターネットワーキングの学位を取得しています。私は自分のコンピューターには何もすることを言わない

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.