¿Por qué hay tantos redistribuibles de Visual C ++ diferentes?

19

Cada vez que instalo un juego, o incluso OpenOffice, parte de la rutina de instalación es instalar otro redistribuible de Visual C ++ 2005/2008, justo al lado de los otros 10 que ya tengo en mi sistema.

¿Por qué son necesarias tantas versiones diferentes (de lo que parece ser lo mismo)?

Tomalak
fuente
No instalé OpenOffice en Windows últimamente, pero AFAIK OO.org Java puro. ¡Eso es perturbador!
lajuette
2
OO.org es en su mayoría C ++ con algunos componentes de Java ( fuente ).
heavyd
Esto no es raro. Desearía que hubiera una forma de acumularlos visualmente en programas de agregar / quitar para que no tenga que verlos todos.
Keltari

Respuestas:

22

Los redistribuibles de Visual C ++ son componentes enviados por desarrolladores de aplicaciones que usan Visual C ++ para escribir su software. Al usar el código bien probado y ampliamente utilizado de Microsoft dentro de sus aplicaciones, los desarrolladores ahorran su costo de desarrollo al evitar escribir código de uso común (por ejemplo, funciones matemáticas y simples y manejo de elementos comunes de la interfaz de usuario como cuadro de texto o botón). Debido a la fragmentación en las versiones de tiempo de ejecución utilizadas por los desarrolladores de la aplicación, vería una larga lista de redistribuibles de Visual C ++ si instala muchas aplicaciones. Desinstalar un redistribuible de Visual C ++ podría ahorrarle unos pocos megabytes de espacio en disco, pero corre el riesgo de romper algunas aplicaciones al hacerlo.

Debido a que los programadores confían en Microsoft para mantener actualizado el tiempo de ejecución de Visual C ++, Microsoft lanza una actualización de seguridad para los redistribuibles, pero debido a las demandas del programador, los redistribuibles de Visual C ++ no se reemplazan entre sí y las versiones antiguas se mantienen por compatibilidad. Algunas aplicaciones son muy específicas sobre la versión de los archivos DLL de Visual C ++ que requieren para asegurarse de que la aplicación se ejecute exactamente como se publicó. Sus autores continúan actualizando al último tiempo de ejecución hasta que prueban la compatibilidad de su aplicación con el nuevo tiempo de ejecución. Es una forma de evitar algunos miles de llamadas de clientes enojados después de que Microsoft lanza una actualización a la redistribuible. Sin embargo, la mayoría de las aplicaciones se vinculan a la última edición de la misma versión principal,

Microsoft también tiene que soportar muchos tiempos de ejecución de Visual C ++ porque no tiene idea de cuál elegiría el desarrollador de la aplicación. Se pueden requerir varias versiones de redistribuibles de Visual C ++ incluso dentro de la misma aplicación, por ejemplo, si una aplicación que depende de Redistribuible de Visual C ++ 2008 usa un componente que depende de Redistribuible de Visual C ++ 2005, el desarrollador de la aplicación debe enviar ambas versiones de redistribuibles de Visual C ++. En una computadora de 64 bits, el sistema podría tener instaladas las ediciones x86 y x64 de Visual C ++ Redistributables, ya que Visual C ++ redistribuible es un componente de uso común, y es normal tener aplicaciones de 32 bits y aplicaciones de 64 bits (o incluso aplicaciones que contienen tanto el código de 32 bits como el de 64 bits) instalados en un sistema de 64 bits.

Probablemente pueda encontrar la aplicación que instala un redistribuible buscando una aplicación con la misma fecha de instalación que la redistribuible, pero no se sabe cuántas otras aplicaciones con una fecha de instalación posterior dependen de la misma redistribuible. Es muy probable que la cantidad de tiempo que pasa buscando la dependencia exacta no valga los pocos megabytes que puede ahorrar desinstalando los redistribuibles.

Sheng Jiang 蒋 晟
fuente
Esta es una muy buena respuesta. Los desarrolladores también apuntan a versiones específicas. No se garantiza que una función en la Versión A funcione de la misma manera en la Versión B. Por supuesto, en realidad lo básico seguirá siendo el mismo entre las versiones, las nuevas características, la Característica C que existen en la Versión B y posteriores, y la Característica C que existe solo en La versión C es el verdadero problema que enfrentan los desarrolladores. Entonces distribuyen la versión que usaron y compilan su software para usar solo esa versión. En este caso específico, es posible la publicación de varias fechas de C ++ Redistributables de la misma versión (es decir, febrero, marzo, abril de 2005).
Ramhound
3

La razón es que no son lo mismo. Primero debe comprender que cada versión de MSVC ++ se entrega con su propia versión de bibliotecas de tiempo de ejecución. También hay versiones de 32 y 64 bits. Además, hay paquetes de servicio que ofrecen versiones actualizadas de bibliotecas de tiempo de ejecución.

Si tiene 10 instalaciones, ¿puede enumerar sus nombres? No creo que deba tener más de 4 (32 y 64 bits para 2005 y lo mismo para 2008). Los paquetes de servicio deben reemplazar las versiones no actualizadas.

AndrejaKo
fuente
1
Creo que esto es correcto: solo hay 4 que conozco y la mejora aquí es que ahora se pueden instalar uno al lado del otro. La compilación requerida depende de si la aplicación se cumplió para vincular estática o dinámicamente al tiempo de ejecución utilizado en la compilación de la aplicación. Estos pueden coexistir pacíficamente y son relativamente pequeños.
jtreser
¡+2 más para VS2010! Pero aún así, si OP tiene 10, eso es demasiado.
AndrejaKo
Bueno, lo admito, no los he contado. En mi máquina en el trabajo tengo dos (2008 32 bits y 64 bits, ambos 9.0.algo). Los contaré en casa también.
Tomalak el
3
Tengo 12 en la lista. 2005 (2) (sin especificación o versión incluida) 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
Darren Hall
1
@DarrenHall: es normal tener tantos. Cada versión es diferente y tiene aplicaciones dirigidas a esas versiones específicas.
Ramhound
1

Hay muchas versiones de los archivos redistribuibles de C ++, a menos que sepa exactamente qué programa usará el archivo, elimine incluso uno y todos los programas que lo usaron se deshabilitarán permanentemente a menos que se reinstalen.

Aquellos que tienen muchos programas instalados tendrán muchas versiones de ellos. Microsoft permite que se redistribuya, por lo que, en lugar de inventar un código nuevo cada vez, un desarrollador puede introducir uno de esos por usted.

Son pequeños y no lo suficientemente grandes como para preocuparse. Muchos de ellos son solo KB, algunos son MB y son mejores que los programas que son GB.

Sé que es molesto ver a muchos de ellos allí (tengo 21 de ellos), pero déjelos en paz, sus programas se cerrarán si los elimina. También sería bueno que los desarrolladores de programas también los etiquetaran para el programa individual, pero si lo hicieran, tendría cientos más. En este momento, los programas se aprovechan de ellos, lo que permite que los programas utilicen la codificación tanto antigua como nueva.

Tengo un título en redes informáticas. No te diría nada que le hagas a tu computadora que no le haría a mi propia

Kamiko
fuente