โปรแกรมไม่สามารถเริ่มทำงานได้เนื่องจาก api-ms-win-crt-runtime-l1-1-0.dll หายไปจากคอมพิวเตอร์ของคุณ


9

เมื่อเริ่มโปรแกรมบางโปรแกรมใน Windows 7 ฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

โปรแกรมไม่สามารถเริ่มทำงานได้เนื่องจาก api-ms-win-crt-runtime-l1-1-0.dll หายไปจากคอมพิวเตอร์ของคุณ

ป้อนคำอธิบายรูปภาพที่นี่

การคลิก "ตกลง" จะเป็นการยกเลิกกล่องโต้ตอบและอนุญาตให้ซอฟต์แวร์ทำงานโดยไม่มีปัญหาใด ๆ แต่ข้อผิดพลาดจะเกิดขึ้นซ้ำในครั้งต่อไปที่ฉันเรียกใช้ซอฟต์แวร์

น่าเสียดายที่การติดตั้งซอฟต์แวร์ใหม่ไม่สามารถแก้ปัญหาได้

นี่เป็นเรื่องที่น่ารำคาญมาก ฉันจะแก้ไขปัญหานี้ได้อย่างไร

คำตอบ:


12

สาเหตุของข้อผิดพลาดนี้คืออะไรและฉันจะแก้ไขได้อย่างไร

มันเกิดขึ้นเมื่อแอพพลิเคชั่นที่สร้างขึ้นโดยใช้ Windows 10 SDK นั้นทำงานบน Windows รุ่นก่อนหน้า

นี้จะสร้างการพึ่งพาบนวินโดวส์ 10 ยูนิเวอร์แซ CRT (C Runtime)

หากต้องการแก้ไขให้ติดตั้งUpdate for Universal C Runtime ใน Windows :

Windows 10 Universal CRT เป็นส่วนประกอบของระบบปฏิบัติการ Windows ที่เปิดใช้งานฟังก์ชัน CRT ในระบบปฏิบัติการ Windows อัปเดตนี้อนุญาตให้แอปพลิเคชันเดสก์ท็อป Windows ที่ใช้ Windows 10 Universal CRT รีลีสรันบนระบบปฏิบัติการ Windows รุ่นก่อนหน้า

Microsoft Visual Studio 2015 สร้างการอ้างอิงบน Universal CRT เมื่อสร้างแอปพลิเคชันโดยใช้ Windows 10 Software Development Kit (SDK) คุณสามารถติดตั้งอัพเดตนี้บนระบบปฏิบัติการ Windows รุ่นก่อนหน้าเพื่อให้แอปพลิเคชันเหล่านี้ทำงานได้อย่างถูกต้อง


อ่านเพิ่มเติม


ถ้าง่าย Hello World จะรวบรวมกับ VS2017 ปฏิบัติการขึ้นอยู่กับapi-ms-win-crt-runtime-l1-1-0.dllแต่ถ้ารวบรวมกับ MinGW msvcrt.dllก็ขึ้นอยู่กับ ทำไม?
Biswapriyo

@Biswa ไม่มีความคิด ฉันไม่เคยใช้ Visual Studio ... แต่ฉันเดาว่า VS ใช้ Windows 10 SDK และ mingw ไม่ได้
DavidPostill

3
@Biswa: นั่นคือ MinGW ที่โง่ DLL ที่มันขึ้นอยู่กับเป็นอย่างมีประสิทธิภาพ Visual C 4.2รันไทม์ (ใช่มันมากกว่า 10 รุ่นเก่าโดยขณะนี้) จากก่อน Windows 95 วัน มันไม่ใช่ห้องสมุดที่ทุกคนควรพึ่งพา
Joey

2
@ edc65 มีความเป็นไปได้ที่ไลบรารีจะถูกคอมไพล์ลงในไฟล์เรียกทำงาน แต่ไม่ได้ใช้จริง อาจเป็นไปได้ว่าคุณไม่ได้ใช้คุณสมบัติในซอฟต์แวร์ที่ต้องใช้ไลบรารีนี้
RobertSF

1
@ โจอี้: ฉันคิดว่าคุณหมายถึงรันไทม์ Visual C ++ 4.2 C มีคอมไพเลอร์ Microsoft C 4.x แต่มันไม่มีชื่อเล่น "Visual" และไม่เคยมีรุ่น 32 บิต และ MSVCRT.DLL ได้รับการอัปเดตหลายครั้งในระหว่างนั้นด้วยการแก้ไขข้อผิดพลาดและการอัปเดตเช่นกฎ Daylight Daylight Time แต่ตามที่คุณแนะนำมันยังคงใช้ได้กับ ABI กับ Visual C ++ 4.2
Ben Voigt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.