เหตุใดจึงมี redistributables Visual C ++ แตกต่างกันมากมาย


19

ทุกครั้งที่ฉันติดตั้งเกมหรือแม้กระทั่ง OpenOffice ส่วนหนึ่งของรูทีนการติดตั้งกำลังติดตั้ง Visual C ++ 2005/2008 ที่เผยแพร่ต่ออีกครั้งติดกับ 10 ตัวถัดจากที่ฉันมีอยู่ในระบบของฉัน

ทำไมรุ่นต่าง ๆ มากมาย (ของสิ่งที่รู้สึกเหมือนกัน) จำเป็น?


ฉันไม่ได้ติดตั้ง OpenOffice บน Windows เมื่อเร็ว ๆ นี้ แต่ AFAIK OO.org pure Java มันน่ารำคาญ!
lajuette

2
OO.org เป็นจริงส่วนใหญ่ C ++ กับบางส่วนประกอบ Java ( แหล่งที่มา )
หนัก

นี่ไม่ใช่เรื่องแปลก ฉันหวังว่าจะมีวิธีที่จะทำให้พวกเขามองเห็นได้ในการเพิ่ม / ลบโปรแกรมดังนั้นคุณไม่ต้องเห็นพวกเขาทั้งหมด
Keltari

คำตอบ:


22

Visual C ++ redistributables เป็นส่วนประกอบที่จัดส่งโดยนักพัฒนาแอพที่ใช้ Visual C ++ เพื่อเขียนซอฟต์แวร์ ด้วยการใช้รหัสที่ผ่านการทดสอบอย่างดีและใช้กันอย่างแพร่หลายของ Microsoft ในแอพนักพัฒนาประหยัดค่าใช้จ่ายในการพัฒนาโดยหลีกเลี่ยงการเขียนรหัสที่ใช้กันทั่วไป (เช่นฟังก์ชัน sin และ cos math และการจัดการองค์ประกอบส่วนติดต่อผู้ใช้ทั่วไปเช่นกล่องข้อความหรือปุ่ม) เนื่องจากมีการแตกแฟรกเมนต์ในเวอร์ชันรันไทม์ที่นักพัฒนาแอปใช้คุณจะเห็นรายการที่เผยแพร่ซ้ำของ Visual C ++ หากคุณติดตั้งแอพจำนวนมาก การถอนการติดตั้ง Visual C ++ ที่สามารถเผยแพร่ต่อได้จะช่วยให้คุณประหยัดพื้นที่ดิสก์สักสองสามเมกะไบต์ แต่คุณอาจเสี่ยงต่อแอปบางตัวในการทำเช่นนั้น

เนื่องจากโปรแกรมเมอร์ต้องพึ่งพา Microsoft เพื่อให้ Visual C ++ รันไทม์เป็นปัจจุบัน Microsoft ออกการปรับปรุงความปลอดภัยสำหรับ redistributables แต่เนื่องจากความต้องการโปรแกรมเมอร์โปรแกรมเมอร์ Visual C ++ redistributables ไม่ได้แทนที่กันและรุ่นเก่าจะถูกเก็บไว้เพื่อความเข้ากันได้ แอพบางตัวมีความเฉพาะเจาะจงมากเกี่ยวกับเวอร์ชันของ Visual C ++ dll ที่พวกเขาต้องการเพื่อให้แน่ใจว่าแอพนั้นทำงานตรงตามที่เผยแพร่ ผู้เขียนของพวกเขาทำการปรับปรุงเป็นรันไทม์ล่าสุดจนกว่าพวกเขาจะทดสอบความเข้ากันได้ของแอพกับรันไทม์ใหม่ เป็นวิธีหนึ่งในการป้องกันการโทรไม่กี่พันครั้งจากลูกค้าที่โกรธเคืองหลังจาก Microsoft เผยแพร่การอัปเดตไปยังการเผยแพร่ซ้ำ อย่างไรก็ตามแอพส่วนใหญ่เชื่อมโยงกับเวอร์ชันหลักเดียวกันกับเวอร์ชั่นล่าสุด

Microsoft ยังต้องสนับสนุน runtimes Visual C ++ เป็นจำนวนมากเนื่องจากไม่มีความคิดว่าจะเลือกนักพัฒนาแอปใด Visual C ++ redistributables หลายเวอร์ชันสามารถใช้ได้แม้ในแอพเดียวกันตัวอย่างเช่นหากแอปที่ขึ้นอยู่กับ Visual C ++ 2008 สามารถแจกจ่ายต่อได้ใช้ส่วนประกอบขึ้นอยู่กับ Visual C ++ 2005 redistributable ผู้พัฒนาแอพต้องจัดส่ง Visual C ++ redistributable ทั้งสองเวอร์ชัน บนคอมพิวเตอร์ 64 บิตระบบสามารถติดตั้ง Redistributables ทั้งรุ่น x86 และ x64 ได้เนื่องจาก Visual C ++ redistributable เป็นส่วนประกอบที่ใช้กันทั่วไปและเป็นเรื่องปกติที่จะมีทั้งแอพ 32 บิตและแอพ 64 บิต (หรือแม้กระทั่งแอพที่มี ติดตั้งทั้งรหัส 32 บิตและรหัส 64 บิตบนระบบ 64 บิต

คุณอาจพบว่าแอปที่ติดตั้งการแจกจ่ายซ้ำได้โดยการค้นหาแอพที่มีวันที่ติดตั้งเดียวกันกับการแจกจ่ายซ้ำ แต่ไม่มีการบอกว่าแอพอื่น ๆ ที่มีวันที่ติดตั้งในภายหลังนั้นขึ้นอยู่กับการแจกจ่ายซ้ำเดียวกัน ระยะเวลาที่คุณใช้ในการค้นหาการอ้างอิงที่แน่นอนน่าจะไม่คุ้มค่าสักสองสามเมกะไบต์ที่คุณอาจบันทึกโดยการถอนการติดตั้ง redistributables


นี่เป็นคำตอบที่ดีมาก นักพัฒนายังกำหนดเป้าหมายเวอร์ชันเฉพาะ ฟังก์ชั่นใน Release A ไม่รับประกันว่าจะทำงานในลักษณะเดียวกันใน Release B แน่นอนว่าในความเป็นจริงแล้วพื้นฐานจะยังคงเหมือนเดิมระหว่างการเปิดตัวฟีเจอร์ใหม่ฟีเจอร์ C ที่มีอยู่ในรีลีส B และรุ่นที่ใหม่กว่า Release C เป็นปัญหาที่นักพัฒนาประสบ ดังนั้นพวกเขาจึงแยกแยะรุ่นที่พวกเขาใช้และรวบรวมซอฟต์แวร์ของพวกเขาเพื่อใช้เฉพาะรุ่นนั้น ในกรณีเฉพาะนี้การเผยแพร่หลาย ๆ วันของ C ++ Redistributables เป็นไปได้ของรุ่นเดียวกัน (เช่น ก.พ. , มีนาคม, เมษายน 2005)
Ramhound

3

เหตุผลก็คือพวกเขาไม่เหมือนกัน ก่อนอื่นคุณต้องเข้าใจว่าทุกเวอร์ชันของ MSVC ++ มาพร้อมกับเวอร์ชันรันไทม์ไลบรารีของตัวเอง นอกจากนี้ยังมีรุ่น 32 และ 64 บิต นอกจากนี้ยังมี Service Pack ที่นำไลบรารีรันไทม์รุ่นอัปเดตมาให้ด้วย

หากคุณมี 10 การติดตั้งคุณสามารถแสดงรายชื่อของพวกเขาได้หรือไม่? ฉันไม่คิดว่าคุณควรมีมากกว่า 4 (32 และ 64 บิตสำหรับปี 2005 และเหมือนกันสำหรับปี 2008) Service Pack ควรแทนที่รุ่นที่ไม่ได้อัปเดต


1
ฉันเชื่อว่านี่ถูกต้อง - มีเพียง 4 ที่ฉันรู้และการปรับปรุงที่นี่คือตอนนี้พวกเขาสามารถติดตั้งแบบเคียงข้างกัน บิลด์ที่จำเป็นขึ้นอยู่กับว่าแอปพลิเคชันนั้นสอดคล้องกับลิงก์แบบสแตติกหรือแบบไดนามิกกับรันไทม์ที่ใช้ในการรวบรวมแอปพลิเคชันหรือไม่ สิ่งเหล่านี้สามารถอยู่ร่วมกันได้อย่างสงบสุขและค่อนข้างเล็ก
jtreser

+2 เพิ่มเติมสำหรับ VS2010! แต่ถ้า OP มี 10 นั่นก็มากเกินไป
AndrejaKo

เป็นที่ยอมรับว่าฉันไม่ได้นับพวกเขา ในเครื่องที่ทำงานฉันมีสองเครื่อง (2008 32 บิตและ 64 บิตทั้ง 9.0.something) ฉันจะนับพวกเขาที่บ้านด้วย
Tomalak

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
Darren Hall

1
@DarrenHall - เป็นเรื่องปกติท แต่ละรุ่นมีความแตกต่างและคุณมีแอปพลิเคชั่นที่กำหนดเป้าหมายรุ่นเฉพาะเหล่านั้น
Ramhound

1

มีไฟล์เผยแพร่ซ้ำ C ++ หลายเวอร์ชันยกเว้นว่าคุณทราบดีว่าโปรแกรมใดจะใช้ไฟล์นั้นลบไฟล์แม้แต่ a และทุกโปรแกรมที่ใช้มันจะปิดการใช้งานอย่างถาวรเว้นแต่จะติดตั้งใหม่

ผู้ที่มีหลายโปรแกรมที่ติดตั้งจะมีหลายรุ่น Microsoft อนุญาตให้แจกจ่ายซ้ำได้ดังนั้นแทนที่จะคิดค้นรหัสใหม่ทุกครั้งผู้พัฒนาสามารถเปิดรหัสใหม่ให้คุณได้

พวกมันเล็กและไม่ใหญ่พอที่จะกังวล หลายคนมีเพียง KB, ไม่กี่ MB และดีกว่าโปรแกรมที่เป็น GB

ฉันรู้ว่ามันเป็นเรื่องยากที่จะเห็นพวกเขาหลายคนที่นั่น (ฉันมี 21 คน) แต่ปล่อยให้พวกเขาอยู่คนเดียวโปรแกรมของคุณจะปิดตัวลงถ้าคุณลบพวกเขา มันจะดีถ้านักพัฒนาโปรแกรมติดป้ายกำกับพวกเขาสำหรับแต่ละโปรแกรม แต่ถ้าพวกเขาทำคุณจะมีอีกหลายร้อย ตอนนี้โปรแกรมกลับมาปิดตัวเองซึ่งช่วยให้โปรแกรมใช้การเข้ารหัสจากทั้งเก่าและใหม่

ฉันมีปริญญาในระบบเครือข่ายคอมพิวเตอร์ ฉันจะไม่บอกให้คุณทำอะไรกับคอมพิวเตอร์ของคุณว่าฉันจะไม่ทำอะไรกับตัวเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.