Tại sao có nhiều phân phối lại Visual C ++ khác nhau?


19

Mỗi lần tôi cài đặt một trò chơi, hoặc thậm chí OpenOffice, một phần của thói quen cài đặt sẽ cài đặt một Visual C ++ 2005/2008 khác có thể phân phối lại, ngay bên cạnh 10 cái khác tôi đã có trên hệ thống của mình.

Tại sao rất nhiều phiên bản khác nhau (của những gì cảm thấy giống như vậy) cần thiết?


Gần đây tôi không cài đặt OpenOffice trên Windows, nhưng Java thuần AFAIK OO.org. Điều đó thật đáng lo ngại!
lajuette

2
OO.org thực sự chủ yếu là C ++ với một số thành phần Java ( nguồn ).
heavyyd

Đây không phải là hiếm. Tôi ước có một cách trực quan để cuộn chúng lên trong các chương trình thêm / xóa để bạn không phải xem tất cả.
Keltari

Câu trả lời:


22

Visual C ++ redistributables là các thành phần được vận chuyển bởi các nhà phát triển ứng dụng sử dụng Visual C ++ để viết phần mềm của họ. Bằng cách sử dụng mã được kiểm tra tốt và được sử dụng rộng rãi của Microsoft trong các ứng dụng của họ, các nhà phát triển tiết kiệm chi phí phát triển của họ bằng cách tránh viết mã thường được sử dụng (ví dụ: các hàm toán học sin và cos và xử lý các thành phần giao diện người dùng phổ biến như hộp văn bản hoặc nút). Do sự phân mảnh trong các phiên bản thời gian chạy được sử dụng bởi các nhà phát triển ứng dụng, bạn sẽ thấy một danh sách dài các phân phối lại Visual C ++ nếu bạn cài đặt nhiều ứng dụng. Gỡ cài đặt một Visual C ++ có thể phân phối lại có thể giúp bạn tiết kiệm một vài megabyte dung lượng đĩa, nhưng bạn có nguy cơ phá vỡ một số ứng dụng khi làm như vậy.

Do các lập trình viên dựa vào Microsoft để cập nhật thời gian chạy Visual C ++, Microsoft phát hành bản cập nhật bảo mật cho các bản phân phối lại, nhưng do nhu cầu của lập trình viên, các bản phân phối lại Visual C ++ không thay thế cho nhau và các phiên bản cũ được giữ nguyên để tương thích. Một số ứng dụng rất cụ thể về phiên bản của các dll Visual C ++ mà họ yêu cầu để đảm bảo ứng dụng chạy chính xác như đã xuất bản. Các tác giả của họ tiếp tục cập nhật lên thời gian chạy mới nhất cho đến khi họ kiểm tra khả năng tương thích của ứng dụng với thời gian chạy mới. Đó là một cách để ngăn chặn một vài ngàn cuộc gọi từ những khách hàng giận dữ sau khi Microsoft phát hành bản cập nhật cho bản phân phối lại. Tuy nhiên, hầu hết các ứng dụng liên kết với phiên bản mới nhất của cùng một phiên bản chính,

Microsoft cũng phải hỗ trợ rất nhiều thời gian chạy Visual C ++ vì họ không biết nhà phát triển ứng dụng nào sẽ chọn. Có thể yêu cầu nhiều phiên bản phân phối lại Visual C ++ ngay cả trong cùng một ứng dụng, ví dụ, nếu một ứng dụng phụ thuộc vào Visual C ++ 2008 có thể phân phối lại sử dụng một thành phần tùy thuộc vào Visual C ++ 2005 có thể phân phối lại, nhà phát triển ứng dụng phải gửi cả hai phiên bản phân phối lại Visual C ++. Trên máy tính 64 bit, hệ thống có thể cài đặt cả phiên bản x86 và x64 của Visual C ++ Redistributables, vì Visual C ++ redistributable là một thành phần thường được sử dụng và thông thường có cả ứng dụng 32 bit và ứng dụng 64 bit (hoặc thậm chí cả ứng dụng có chứa ứng dụng cả mã 32 bit và mã 64 bit) được cài đặt trên hệ thống 64 bit.

Bạn có thể có thể tìm thấy ứng dụng cài đặt phân phối lại bằng cách tìm kiếm một ứng dụng có cùng ngày cài đặt với phân phối lại, nhưng không có bao nhiêu ứng dụng khác có ngày cài đặt sau tùy thuộc vào cùng một phân phối lại. Lượng thời gian bạn dành cho việc tìm kiếm sự phụ thuộc chính xác rất có thể sẽ không đáng giá vài megabyte bạn có thể tiết kiệm bằng cách gỡ cài đặt các phân phối lại.


Đây là một câu trả lời rất tốt. Các nhà phát triển cũng nhắm mục tiêu các phiên bản cụ thể. Một chức năng trong Bản phát hành A không được đảm bảo hoạt động giống như trong Bản phát hành B. Tất nhiên trong thực tế, phần cơ bản sẽ giữ nguyên giữa các bản phát hành, các tính năng mới của Tính năng C tồn tại trong Bản phát hành B trở lên và Tính năng C chỉ tồn tại trong Phát hành C là vấn đề thực sự mà các nhà phát triển phải đối mặt. Vì vậy, họ không tin tưởng phiên bản họ đã sử dụng và biên dịch phần mềm của họ để chỉ sử dụng phiên bản đó. Trong trường hợp cụ thể này, nhiều bản phát hành C ++ Redistributables có thể có cùng phiên bản (ví dụ: Tháng Hai, Tháng Ba, Tháng Tư năm 2005).
Ramhound

3

Lý do là chúng không giống nhau. Trước tiên, bạn cần hiểu rằng mọi phiên bản MSVC ++ đều có phiên bản thư viện thời gian chạy riêng. Ngoài ra còn có phiên bản 32 và 64 bit. Ngoài ra, có các gói dịch vụ mang đến các phiên bản cập nhật của thư viện thời gian chạy.

Nếu bạn có 10 cài đặt, bạn có thể liệt kê tên của họ không? Tôi không nghĩ rằng bạn nên có nhiều hơn 4 (32 và 64 bit cho năm 2005 và tương tự cho năm 2008). Gói dịch vụ nên thay thế các phiên bản không cập nhật.


1
Tôi tin rằng điều này là chính xác - chỉ có 4 cái mà tôi biết và cải tiến ở đây là giờ đây chúng có thể được lắp đặt cạnh nhau. Bản dựng được yêu cầu phụ thuộc vào việc ứng dụng được tuân thủ liên kết tĩnh hay động với thời gian chạy được sử dụng trong quá trình biên dịch ứng dụng. Chúng có thể cùng tồn tại một cách hòa bình và tương đối nhỏ.
jtreser

Hơn 2 cho VS2010! Nhưng nếu OP có 10, thì quá nhiều.
AndrejaKo

Chà, thừa nhận, tôi đã không đếm chúng. Trên máy của tôi tại nơi làm việc, tôi có hai (2008 32bit và 64bit, cả 9.0.s Something). Tôi cũng sẽ đếm chúng ở nhà.
Tomalak

3
Tôi có 12 danh sách. 2005 (2) (không có thông số kỹ thuật hoặc phiên bản được liệt kê) 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 - Thật bình thường khi có nhiều như vậy. Mỗi phiên bản là khác nhau và bạn có các ứng dụng nhắm mục tiêu các phiên bản cụ thể đó.
Ramhound

1

Có nhiều phiên bản của các tệp có thể phân phối lại C ++, trừ khi bạn biết chính xác chương trình nào sẽ sử dụng tệp, loại bỏ ngay cả một và mọi chương trình đã sử dụng sẽ vô hiệu hóa trừ khi được cài đặt lại.

Những người có nhiều chương trình được cài đặt sẽ có nhiều phiên bản của chúng. Microsoft cho phép nó được phân phối lại, vì vậy thay vì phát minh ra mã mới mỗi lần, nhà phát triển chỉ có thể bật một trong những mã đó cho bạn.

Chúng nhỏ bé và không đủ lớn để lo lắng. Nhiều người trong số họ chỉ là KB, một số ít là MB và tốt hơn các chương trình là GB.

Tôi biết thật là vui khi thấy nhiều người trong số họ ở đó (tôi có 21 người trong số họ), nhưng để họ một mình, các chương trình của bạn sẽ tắt nếu bạn gỡ bỏ chúng. Sẽ thật tuyệt nếu các nhà phát triển chương trình cũng dán nhãn chúng cho chương trình riêng lẻ, nhưng nếu họ làm bạn sẽ có thêm hàng trăm. Ngay bây giờ các chương trình cõng chúng ra, cho phép các chương trình sử dụng mã hóa từ cả cũ và mới.

Tôi có bằng cấp về mạng máy tính. Tôi sẽ không nói cho bạn biết bất cứ điều gì để làm với máy tính của bạn mà tôi sẽ không làm cho riêng tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.