Program nie może zostać uruchomiony, ponieważ w komputerze brakuje api-ms-win-crt-runtime-l1-1-0.dll

9

Podczas uruchamiania niektórych programów w systemie Windows 7 pojawia się następujący komunikat o błędzie:

Program nie może zostać uruchomiony, ponieważ w komputerze brakuje api-ms-win-crt-runtime-l1-1-0.dll

wprowadź opis zdjęcia tutaj

Kliknięcie „OK” powoduje zamknięcie okna dialogowego i pozwala na uruchomienie oprogramowania bez żadnych problemów, ale błąd powtarza się przy następnym uruchomieniu oprogramowania.

Niestety ponowna instalacja oprogramowania nie rozwiązuje problemu.

To staje się bardzo denerwujące. Jak to rozwiązać?

DavidPostill
źródło

Odpowiedzi:

12

Co powoduje ten błąd i jak go naprawić?

Dzieje się tak, gdy aplikacje zbudowane przy użyciu zestawu SDK systemu Windows 10 są uruchamiane we wcześniejszej wersji systemu Windows.

Stwarza to zależność od uniwersalnego CRT systemu Windows 10 (środowiska wykonawczego C) .

Aby to naprawić, zainstaluj aktualizację Universal C Runtime w systemie Windows :

Windows 10 Universal CRT to składnik systemu operacyjnego Windows, który umożliwia funkcjonalność CRT w systemie operacyjnym Windows. Ta aktualizacja umożliwia uruchamianie aplikacji komputerowych Windows zależnych od wersji Universal CRT systemu Windows 10 na starszych systemach operacyjnych Windows.

Microsoft Visual Studio 2015 tworzy zależność od Universal CRT, gdy aplikacje są budowane przy użyciu zestawu SDK (Windows 10 Software Development Kit). Możesz zainstalować tę aktualizację we wcześniejszych systemach operacyjnych Windows, aby umożliwić prawidłowe działanie tych aplikacji.


Dalsza lektura

DavidPostill
źródło
Jeśli prosty kompilator Hello World jest skompilowany z VS2017, plik wykonywalny zależy od, api-ms-win-crt-runtime-l1-1-0.dllale jeśli jest skompilowany z mingw, zależy od msvcrt.dll. Dlaczego?
Biswapriyo,
@Biswa Nie mam pojęcia. Nigdy nie korzystałem z Visual Studio ... jednak zgaduję, że VS używa zestawu Windows 10 SDK, a mingw nie.
DavidPostill
3
@Biswa: To głupota z MinGW. Biblioteka DLL, od której zależy, jest w rzeczywistości środowiskiem uruchomieniowym Visual C 4.2 (tak, ma już ponad 10 wersji) sprzed Windows 95 dni . To nie jest biblioteka, na której ktoś powinien zawsze polegać.
Joey,
2
@ edc65 Możliwe, że biblioteka jest wkompilowana w plik wykonywalny, ale w rzeczywistości nie jest używana. Możliwe jest również, że po prostu nie używasz funkcji w oprogramowaniu, która wymaga tej biblioteki.
RobertSF
1
@Joey: Myślę, że masz na myśli środowisko uruchomieniowe Visual C ++ 4.2 C. Był kompilator Microsoft C 4.x, ale nie nosił pseudonimu „Visual” i nigdy nie miał wersji 32-bitowej. I że MSVCRT.DLL został zaktualizowany wiele razy w międzyczasie z poprawkami i aktualizacjach reguł np letni czas, ale jak sugerujesz, to nadal ABI zgodny z Visual C ++ 4.2
Ben Voigt