Por que existem tantos redistribuíveis diferentes do Visual C ++?

19

Toda vez que instalo um jogo, ou mesmo o OpenOffice, parte da rotina de instalação está instalando outro Visual C ++ 2005/2008 redistribuível, ao lado dos outros 10 que já tenho no meu sistema.

Por que tantas versões diferentes (do que parece a mesma coisa) são necessárias?

Tomalak
fonte
Não instalei o OpenOffice no Windows recentemente, mas o AFAIK OO.org puro Java. Isso é perturbador!
Lajette
2
OO.org é na verdade principalmente C ++ com alguns componentes Java ( fonte ).
heavyd 8/08/10
isso não é incomum. Eu gostaria que houvesse uma maneira de visualizá-los em adicionar / remover programas para que você não precise vê-los todos.
31413 Keltari

Respostas:

22

Os redistribuíveis do Visual C ++ são componentes fornecidos pelos desenvolvedores de aplicativos que usam o Visual C ++ para escrever seu software. Ao usar o código bem testado e amplamente usado da Microsoft em seus aplicativos, os desenvolvedores economizam seu custo de desenvolvimento, evitando escrever código comumente usado (por exemplo, funções matemáticas sin e cos e manipulação de elementos comuns da interface do usuário, como caixa de texto ou botão). Devido à fragmentação nas versões de tempo de execução usadas pelos desenvolvedores de aplicativos, você verá uma longa lista de redistribuíveis do Visual C ++ se instalar muitos aplicativos. Desinstalar um Visual C ++ redistribuível pode economizar alguns megabytes de espaço em disco, mas você corre o risco de quebrar alguns aplicativos ao fazê-lo.

Como os programadores dependem da Microsoft para manter o tempo de execução do Visual C ++ atualizado, a Microsoft lança a atualização de segurança para os redistribuíveis, mas devido às demandas dos programadores, os redistribuíveis do Visual C ++ não substituem um ao outro e as versões antigas são mantidas para compatibilidade. Alguns aplicativos são muito específicos sobre a versão das DLLs do Visual C ++ necessárias para garantir que o aplicativo seja executado exatamente como publicado. Seus autores mantêm a atualização para o tempo de execução mais recente até que testem a compatibilidade do aplicativo com o novo tempo de execução. É uma maneira de impedir milhares de ligações de clientes irritados depois que a Microsoft lança uma atualização para o redistribuível. A maioria dos aplicativos, no entanto, vincula-se à edição mais recente da mesma versão principal,

A Microsoft também precisa oferecer suporte a muitos tempos de execução do Visual C ++, porque não tem idéia de qual deles o desenvolvedor de aplicativos escolheria. Várias versões dos redistribuíveis do Visual C ++ podem ser necessárias, mesmo no mesmo aplicativo, por exemplo, se um aplicativo que depende do redistribuível do Visual C ++ 2008 usar um componente dependendo do redistribuível do Visual C ++ 2005, o desenvolvedor do aplicativo deverá enviar as duas versões dos redistribuíveis do Visual C ++. Em um computador de 64 bits, o sistema pode ter as edições x86 e x64 do Visual C ++ Redistributables instaladas, já que o Visual C ++ redistribuível é um componente comumente usado e é normal ter aplicativos de 32 bits e aplicativos de 64 bits (ou mesmo aplicativos que contenham código de 32 bits e código de 64 bits) instalado em um sistema de 64 bits.

Provavelmente, você pode encontrar o aplicativo instalando um redistribuível procurando por um aplicativo com a mesma data de instalação que o redistribuível, mas não há como dizer quantos outros aplicativos com uma data de instalação posterior estão dependendo do mesmo redistribuível. A quantidade de tempo gasto em encontrar a dependência exata provavelmente não valeria os poucos megabytes que você pode economizar ao desinstalar os redistribuíveis.

Sheng Jiang 蒋 晟
fonte
Esta é uma resposta muito boa. Os desenvolvedores também têm como alvo versões específicas. Não é garantido que uma função no Release A funcione da mesma maneira no Release B. É claro que, na realidade, o básico permanecerá o mesmo entre os releases, os novos recursos do Feature C que existem no Release B e posterior e o Feature C que existe apenas no A versão C é o verdadeiro problema que os desenvolvedores enfrentam. Portanto, eles distribuem a versão usada e compilam seu software para usar apenas essa versão. Nesse caso específico, é possível a liberação de várias datas dos redistribuíveis em C ++ da mesma versão (por exemplo, fevereiro, março, abril de 2005).
Ramhound 31/07
3

A razão é que eles não são a mesma coisa. Primeiro, você precisa entender que todas as versões do MSVC ++ são fornecidas com sua própria versão das bibliotecas de tempo de execução. Existem também versões de 32 e 64 bits. Além disso, existem service packs que trazem versões atualizadas das bibliotecas de tempo de execução.

Se você possui 10 instalações, pode listar seus nomes? Não acho que você deva ter mais de 4 (32 e 64 bits para 2005 e o mesmo para 2008). Os service packs devem substituir versões não atualizadas.

AndrejaKo
fonte
1
Acredito que isso esteja correto - há apenas 4 que eu conheço e a melhoria aqui é que agora eles podem ser instalados lado a lado. A construção necessária depende se o aplicativo foi cumprido para vincular estática ou dinamicamente ao tempo de execução usado na compilação do aplicativo. Eles podem coexistir pacificamente e são relativamente pequenos.
jtreser
+2 a mais para VS2010! Mas ainda assim, se o OP tiver 10, isso é demais.
precisa saber é o seguinte
Bem, é verdade que não os contei. Na minha máquina no trabalho, tenho dois (2008 32 bits e 64 bits, ambos com 9.0). Também os contarei em casa.
quer
3
Eu tenho 12 listados. 2005 (2) (nenhuma especificação ou versão listada) 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 - É normal ter tantos. Cada versão é diferente e você tem aplicativos direcionados para essas versões específicas.
Ramhound 31/07
1

Existem muitas versões dos arquivos redistribuíveis do C ++, a menos que você saiba com precisão qual programa usará o arquivo, remova até um e todo programa que o usou será desativado permanentemente, a menos que seja reinstalado.

Aqueles que têm muitos programas instalados terão muitas versões deles. A Microsoft permite que ela seja redistribuída; portanto, em vez de inventar um novo código a cada vez, um desenvolvedor pode inserir apenas um deles para você.

Eles são pequenos e não são grandes o suficiente para se preocupar. Muitos deles são apenas KB, alguns são MB e são melhores que os programas com GB.

Eu sei que é agressivo ver muitos deles lá (eu tenho 21 deles), mas deixe-os em paz, seus programas serão encerrados se você os remover. Também seria bom se os desenvolvedores do programa também os rotulassem para o programa individual, mas se o fizessem, você teria centenas mais. No momento, os programas pegam carona neles, o que permite que os programas usem a codificação do antigo e do novo.

Sou formado em redes de computadores. Eu não diria nada para fazer no seu computador que eu não faria sozinho

Kamiko
fonte