Dlaczego istnieje tak wiele różnych składników redystrybucyjnych Visual C ++?

19

Za każdym razem, gdy instaluję grę, a nawet OpenOffice, częścią procedury instalacyjnej jest instalowanie kolejnej redystrybucyjnej wersji Visual C ++ 2005/2008, tuż obok 10 innych, które mam już w swoim systemie.

Dlaczego konieczne jest tak wiele różnych wersji (czegoś, co wydaje się tym samym)?

Tomalak
źródło
Ostatnio nie instalowałem OpenOffice na Windows, ale AFAIK OO.org czysta Java. To niepokojące!
lajuette
2
OO.org to tak naprawdę głównie C ++ z niektórymi komponentami Java ( źródło ).
heavyd
to nie jest rzadkie. Chciałbym, aby istniał sposób wizualnego zrolowania ich w programach dodawania / usuwania, abyś nie musiał widzieć ich wszystkich.
Keltari

Odpowiedzi:

22

Składniki redystrybucyjne Visual C ++ są komponentami dostarczanymi przez twórców aplikacji, którzy używają Visual C ++ do pisania swojego oprogramowania. Używając dobrze przetestowanego i powszechnie używanego kodu Microsoft w swoich aplikacjach, programiści oszczędzają koszty programowania, unikając pisania powszechnie używanego kodu (np. Funkcji matematycznych sin i cos oraz obsługi typowych elementów interfejsu użytkownika, takich jak pole tekstowe lub przycisk). Ze względu na fragmentację wersji wykonawczych używanych przez twórców aplikacji, po zainstalowaniu wielu aplikacji zobaczysz długą listę redystrybucyjnych składników Visual C ++. Odinstalowanie jednego pakietu redystrybucyjnego Visual C ++ może zaoszczędzić kilka megabajtów miejsca na dysku, ale ryzykujesz w ten sposób uszkodzenie niektórych aplikacji.

Ponieważ programiści polegają na Microsoft, aby aktualizować środowisko uruchomieniowe Visual C ++, Microsoft wydaje aktualizację zabezpieczeń dla składników redystrybucyjnych, ale ze względu na wymagania programistów składniki redystrybucyjne Visual C ++ nie zastępują się nawzajem, a stare wersje są zachowywane pod kątem zgodności. Niektóre aplikacje są bardzo szczegółowe na temat wersji bibliotek DLL Visual C ++, których potrzebują, aby upewnić się, że aplikacja działa dokładnie tak, jak opublikowano. Ich autorzy utrzymują aktualizację do najnowszego środowiska wykonawczego, dopóki nie przetestują zgodności aplikacji z nowym środowiskiem uruchomieniowym. Jest to jeden ze sposobów uniknięcia kilku tysięcy połączeń od wściekłych klientów po tym, jak Microsoft wyda aktualizację do redystrybucji. Większość aplikacji wiąże się jednak z najnowszą wersją tej samej wersji głównej,

Microsoft musi również obsługiwać wiele środowisk uruchomieniowych Visual C ++, ponieważ nie ma pojęcia, który wybierze programista aplikacji. Wiele wersji programów redystrybucyjnych Visual C ++ może być wymaganych nawet w tej samej aplikacji, na przykład jeśli aplikacja zależna od redystrybucyjnej wersji Visual C ++ 2008 używa komponentu zależnego od redystrybucyjnej wersji Visual C ++ 2005, twórca aplikacji musi dostarczyć obie wersje redystrybucyjnych wersji Visual C ++. Na komputerze 64-bitowym system może mieć zainstalowane wersje redystrybucyjne Visual C ++ x86 i x64, ponieważ redystrybucja Visual C ++ jest często wykorzystywanym składnikiem, a aplikacje 32-bitowe i 64-bitowe (lub nawet aplikacje zawierające zarówno 32-bitowy, jak i 64-bitowy) zainstalowany w systemie 64-bitowym.

Prawdopodobnie możesz znaleźć aplikację instalującą redystrybucję, szukając aplikacji z tą samą datą instalacji co redystrybucja, ale nie wiadomo, ile innych aplikacji z późniejszą datą instalacji zależy od tego samego redystrybucji. Czas poświęcony na znalezienie dokładnej zależności najprawdopodobniej nie byłby wart kilku megabajtów, które można zaoszczędzić, odinstalowując składniki redystrybucyjne.

Sheng Jiang 蒋 晟
źródło
To bardzo dobra odpowiedź. Programiści kierują również określone wersje. Nie ma gwarancji, że funkcja w wydaniu A będzie działać w ten sam sposób w wydaniu B. Oczywiście w rzeczywistości podstawowa pozostanie taka sama między wydaniami, jej nowe funkcje, funkcja C, która istnieje w wersji B i później, oraz funkcja C, która istnieje tylko w Wersja C to prawdziwy problem, przed którym stają deweloperzy. Rozpraszają więc wersję, której używali, i kompilują swoje oprogramowanie, aby używać tylko tej wersji. W tym konkretnym przypadku możliwe jest wydanie wielu wersji C ++ Redistributables w tej samej wersji (tj. Luty, marzec, kwiecień 2005).
Ramhound,
3

Powodem jest to, że to nie to samo. Najpierw musisz zrozumieć, że każda wersja MSVC ++ jest dostarczana z własną wersją bibliotek wykonawczych. Istnieją również wersje 32- i 64-bitowe. Istnieją również dodatki Service Pack przynoszą zaktualizowane wersje bibliotek środowiska wykonawczego.

Jeśli masz 10 instalacji, czy możesz wymienić ich nazwy? Nie sądzę, że powinieneś mieć więcej niż 4 (32 i 64 bity dla 2005 i tak samo dla 2008). Dodatki Service Pack powinny zastąpić nieaktualizowane wersje.

AndrejaKo
źródło
1
Wierzę, że jest to poprawne - są tylko 4, o których jestem świadomy, a ulepszenie polega na tym, że można je teraz instalować obok siebie. Wymagana kompilacja zależy od tego, czy aplikacja była zgodna ze statycznym lub dynamicznym łączem do środowiska wykonawczego używanego podczas kompilacji aplikacji. Mogą one koegzystować pokojowo i są stosunkowo niewielkie.
jtreser
+2 więcej dla VS2010! Ale jeśli OP ma 10, to za dużo.
AndrejaKo,
Przyznaję, że ich nie policzyłem. Na moim komputerze w pracy mam dwa (2008 32-bitowy i 64-bitowy, oba 9.0. Coś). Policzę je też w domu.
Tomalak,
3
Mam 12 na liście. 2005 (2) (brak specyfikacji lub wersji na liście) 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 - To normalne, że ma ich tyle. Każda wersja jest inna i masz aplikacje, które były kierowane na te konkretne wersje.
Ramhound
1

Istnieje wiele wersji plików redystrybucyjnych C ++, chyba że dokładnie wiesz, który program będzie używał tego pliku, usuń nawet jeden a, a każdy program, który go użyje, zostanie trwale wyłączony, chyba że zostanie ponownie zainstalowany.

Ci, którzy mają wiele zainstalowanych programów, będą mieli ich wiele wersji. Microsoft pozwala na jego redystrybucję, więc zamiast wymyślać nowy kod za każdym razem, programista może po prostu wstawić jeden z nich dla Ciebie.

Są małe i niewystarczająco duże, aby się o nie martwić. Wiele z nich to tylko KB, niektóre mają MB, i lepiej niż programy, które są GB.

Wiem, że widok wielu z nich jest denerwujący (mam ich 21), ale zostaw je w spokoju, jeśli je usuniesz, programy się zamkną. Byłoby również miło, gdyby twórcy programów oznaczyli je także dla poszczególnych programów, ale gdyby tak było, mielibyśmy setki innych. Obecnie programuje na nich piggyback, co umożliwia programom używanie kodowania zarówno ze starego, jak i nowego.

Mam dyplom z sieci komputerowych. Nie powiem ci nic, co zrobiłbyś na swoim komputerze, czego nie zrobiłbym na swój własny

Kamiko
źródło