ข้อผิดพลาด Microsoft Visual C++ 0x80070666โดยปกติหมายความว่า Windows ตรวจพบผลิตภัณฑ์ Visual C++ Redistributable เวอร์ชันอื่นที่ติดตั้งไว้แล้ว Microsoft เชื่อมโยงรหัส Windows Installer 1638 (0x666) กับ "มีการติดตั้งผลิตภัณฑ์นี้เวอร์ชันอื่นไว้แล้ว" สำหรับ Visual C++ v14 runtime ในปัจจุบัน ข้อผิดพลาดนี้อาจเป็นเรื่องปกติหากแอปพยายามติดตั้งแพ็กเกจเวอร์ชันเก่าทับแพ็กเกจเวอร์ชันใหม่ที่เข้ากันได้
เริ่มต้นด้วยการตรวจสอบสิ่งที่ติดตั้งไว้แล้ว อย่าลบแพ็กเกจ Visual C++ ทั้งหมดออกจากพีซี: ตระกูลเก่าๆ เช่น Visual C++ 2013 อาจจำเป็นสำหรับโปรแกรมเฉพาะบางโปรแกรม และถูกออกแบบมาให้ทำงานควบคู่ไปกับรันไทม์เวอร์ชันใหม่กว่า
1. ตรวจสอบว่าได้ติดตั้ง Visual C++ Redistributable แล้วหรือยัง
บน Windows 10 ให้เปิดการตั้งค่า > แอป > แอปและคุณสมบัติแล้วค้นหา “Visual C++” หรืออีกวิธีหนึ่งคือ ใช้แผงควบคุม > โปรแกรม > โปรแกรมและคุณสมบัติมองหาเวอร์ชัน 14 ที่ตรงกับสถาปัตยกรรมของแอปพลิเคชัน
หากมีการติดตั้ง Redistributable เวอร์ชัน 14 ที่ใหม่กว่าอยู่แล้ว การติดตั้งแบบรวมเวอร์ชันเก่าอาจล้มเหลวด้วยข้อผิดพลาด 0x80070666 ตามที่ออกแบบไว้ ไมโครซอฟต์ระบุว่าแอปที่สร้างด้วยชุดเครื่องมือ MSVC เวอร์ชัน 14 ที่รองรับ สามารถใช้ Redistributable เวอร์ชันเดียวกันหรือใหม่กว่าได้หน้าดาวน์โหลด Visual C++ Redistributable ปัจจุบัน แสดงรายการแพ็กเกจเวอร์ชัน 14 ที่รองรับล่าสุดสำหรับ Visual Studio 2017 ถึง 2026
ในพีซี 64 บิต การเห็นทั้ง แพ็กเกจ x86และx64เป็นเรื่องปกติ แอปพลิเคชัน 32 บิตอาจยังคงต้องการรันไทม์ x86 แม้ว่า Windows เองจะเป็น 64 บิตก็ตาม
2. ซ่อมแซมไฟล์ Redistributable ที่มีอยู่
หากติดตั้งรันไทม์ที่ถูกต้องแล้ว แต่แอปยังคงไม่สามารถเริ่มต้นได้ หรือตัวติดตั้งยังคงรายงานข้อผิดพลาด 0x80070666 ให้ซ่อมแซมแพ็กเกจที่มีอยู่ก่อนที่จะถอนการติดตั้งสิ่งใดๆ
- เปิดแผงควบคุม > โปรแกรม > โปรแกรมและคุณสมบัติ
- เลือก Microsoft Visual C++ Redistributable ที่เกี่ยวข้อง แล้วเลือกเปลี่ยนหรือถอนการติดตั้ง/เปลี่ยน
- เลือก"ซ่อมแซม"จากนั้นรีสตาร์ท Windows หากมีข้อความแจ้งเตือน
นอกจากนี้ คุณยังสามารถซ่อมแซมไฟล์ Redistributable ที่ดาวน์โหลดมาได้จาก Command Prompt ที่เรียกใช้ในโหมดผู้ดูแลระบบ Microsoft ได้อธิบาย/repairตัวเลือกนี้ไว้ในเอกสารแล้ว ตัวอย่างเช่น จากโฟลเดอร์ที่มีตัวติดตั้ง ให้เรียก ใช้คำสั่ง `pair` vc_redist.x64.exe /repairโดยใช้ชื่อไฟล์ที่ตรงกับแพ็กเกจที่คุณดาวน์โหลดมาจริง ๆ
3. ดาวน์โหลดแพ็กเกจที่รองรับล่าสุดจาก Microsoft
ลบไฟล์ติดตั้ง Redistributable เก่าที่คุณเคยใช้ และดาวน์โหลดไฟล์ใหม่จาก Microsoft โดยเฉพาะอย่างยิ่งหากชุดเกมหรือแอปพลิเคชันนั้นมีไฟล์ติดตั้งที่ต้องติดตั้งก่อนเวอร์ชันเก่าอยู่ด้วย
เลือกแพ็กเกจสำหรับสถาปัตยกรรมของแอปพลิเคชัน: x86สำหรับแอป 32 บิต, x64สำหรับแอป 64 บิต หรือตัวเลือก ARM64 ที่เหมาะสม ไมโครซอฟต์ระบุว่าแพ็กเกจ x64 ปัจจุบันยังมีไบนารี ARM64 และ x64 สำหรับอุปกรณ์ ARM64 ด้วย หลังจากติดตั้งรันไทม์ที่รองรับล่าสุดแล้ว ให้เรียกใช้แอปพลิเคชันที่ได้รับผลกระทบหรือตัวติดตั้งอีกครั้ง
อย่าเข้าใจผิดว่า "เวอร์ชันใหม่กว่า" หมายความว่าคุณสามารถลบ Visual C++ เวอร์ชันเก่าทั้งหมดได้ ไมโครซอฟต์แยกตระกูลรันไทม์ Visual C++ 2013 และรุ่นก่อนหน้าออกจากกัน ในขณะที่เวอร์ชัน v14 นั้นเป็นแบบสะสมและใช้งานร่วมกันได้ในระดับไบนารีกับ Visual Studio 2015 และรุ่นที่ใหม่กว่า รายละเอียดเกี่ยวกับการใช้งานร่วมกันได้นั้นมีอธิบายไว้ในเอกสารเกี่ยวกับการใช้งานร่วมกันได้ในระดับไบนารีของ C++ของ ไมโครซอฟต์
4. แก้ไขปัญหาการลงทะเบียนการติดตั้งหรือถอนการติดตั้งที่ผิดพลาด
หากไฟล์ Redistributable ปรากฏในรายการโปรแกรมที่ติดตั้งแล้ว แต่ไม่สามารถซ่อมแซมหรือลบออกได้ อาจเป็นเพราะข้อมูลการลงทะเบียนหรือข้อมูลการตั้งค่าที่แคชไว้ของ Windows Installer เสียหาย คู่มือการแก้ไขปัญหา Visual C++ ฉบับปัจจุบันของ Microsoft ระบุว่า ให้ระบุเวอร์ชันที่มีปัญหา ลองลบไฟล์ VC Redist เก่าผ่าน Windows Installer และอนุญาตให้เครื่องมือแก้ไขปัญหาของ Windows Installer ลองแก้ไขหาก Windows มีตัวเลือกนั้น
โปรดปฏิบัติตาม คู่มือการแก้ไขปัญหา Visual C++ Redistributableของ Microsoft หากการติดตั้งยังคงล้มเหลว Microsoft แนะนำให้เรียกใช้ตัวติดตั้งในฐานะผู้ดูแลระบบ ติดตั้งการอัปเดต Windows ที่ค้างอยู่ รีสตาร์ทพีซี และลองใหม่อีกครั้ง สำหรับกรณีที่แก้ไขยาก คู่มือเดียวกันนี้จะอธิบายวิธีการรวบรวมบันทึก VC Redist เพื่อให้สามารถระบุแพ็กเกจที่ล้มเหลวได้อย่างแม่นยำ
สิ่งที่ไม่ควรทำ
- ห้ามลบไฟล์ DLL ของ Visual C++ ด้วยตนเองจากโฟลเดอร์ System32 หรือ SysWOW64
- อย่าลบทุกเวอร์ชันของไฟล์ Redistributableเพียงเพราะมีรายการปรากฏอยู่ในรายการโปรแกรมที่ติดตั้งหลายรายการ
- อย่าฝืนใช้แพ็คเกจ v14 เวอร์ชันเก่ากว่าทับเวอร์ชันใหม่กว่าข้อผิดพลาด 0x80070666 อาจหมายความว่ารันไทม์เวอร์ชันใหม่ที่เข้ากันได้นั้นได้ติดตั้งอยู่แล้ว
หากตัวติดตั้งแอปยังคงหยุดทำงานที่รหัสข้อผิดพลาด 0x80070666 หลังจากติดตั้งและซ่อมแซมรันไทม์ปัจจุบันแล้ว ให้ทำการอัปเดตตัวติดตั้งแอปหรือติดต่อผู้จำหน่ายซอฟต์แวร์ ในกรณีเช่นนั้น ปัญหาที่เหลืออยู่อาจเกิดจากการตรวจสอบข้อกำหนดเบื้องต้นของผู้จำหน่ายมากกว่าตัวรันไทม์ Visual C++ เอง