Waarom kan Visual Studio 2015 het exe-bestand (ucrtbased.dll) niet uitvoeren?

Ik heb Visual Studio 2015 geïnstalleerd en een Win32-project gemaakt met wat code. Ik heb het met succes gecompileerd, maar ik kan het exe-bestand niet starten, omdat ik geen ucrtbased.dll heb… Dus hoe kan ik het oplossen?

Bewerken:
Het Engelse equivalente bericht is:
“Het programma kan niet starten omdat ucrtbased.dll op uw computer ontbreekt. Probeer het programma opnieuw te installeren om dit probleem op te lossen. “


Antwoord 1, autoriteit 100%

Dit probleem komt van VS 2015 en faalt stil bij het kopiëren van ucrtbased.dll(debug) en ucrtbase.dll(release) naar de juiste systeemmappen tijdens de installatie van Visual Studio. (Of je hebt “Common Tools for Visual C++ 2015” niet geselecteerd tijdens de installatie.) Daarom kan opnieuw installeren helpen. Opnieuw installeren is echter een extreme maatregel… dit kan worden opgelost zonder een volledige herinstallatie.

Ten eerste, als het onderliggende probleem je niet echt interesseert en je wilt dit éénproject snel laten werken, dan is hier een snelle oplossing: kopieer gewoon ucrtbased.dllvan C:\Program Files (x86)\Windows Kits\10\bin\x86\ucrt\ucrtbased.dll(voor 32-bits foutopsporing) in de \debug-map van uw toepassing naast het uitvoerbare bestand. Dan ZAL het gevonden worden en zal de fout verdwijnen. Maar dit werkt alleen voor dit eneproject.

Een meer permanente oplossing is om ucrtbased.dllen ucrtbase.dllin de juiste systeemmappen te krijgen. Nu kunnen we beginnen met het kopiëren van deze bestanden naar \Windows\System32 en \SysWOW64, en het misschienlost het probleem op. Dit is echter niet de beste oplossing. Er was een reden waarom dit in de eerste plaats mislukte, en het op deze manier forceren van het gebruik van specifieke .dll’s kan grote problemen veroorzaken.

De beste oplossing is om het configuratiescherm –> Programma’s en functies –> Microsoft Visual Studio 2015 –> Aanpassen. Schakel vervolgens “Visual C++ –> Common Tools for Visual C++ 2015” uit. Klik op Volgende en vervolgens op Bijwerken en na een paar minuten zou Common Tools moeten worden verwijderd. Herhaal dan, maar installeer deze keer de Common Tools. Zorg ervoor dat antivirus is uitgeschakeld, dat er geen andere taken openstaan, enz. en dat het zou moeten werken. Dit is de beste manier om ervoor te zorgen dat deze bestanden precies worden gekopieerd waar ze zouden moeten zijn.


Foutcodes: Houd er rekening mee dat als het installatieprogramma een cryptisch foutnummer retourneert, zoals -2147023293, u dit kunt converteren naar hex met behulp van een van de gratis online decimaal-naar-hex-converters. Voor deze fout is het 0xFFFFFFFF80070643 wat, als je de FF’s laat vallen en googelt op “0x80070643”, betekent `0x80070643 – Installatiecache of ISO is beschadigd’.


Waarom is ucrtbased.dllzelfs nodig?: Elke DLL met de naam “crt” is een “C-Run-Time”-module of bibliotheek. Microsoft legt ze het beste uit . Er zijn tegenwoordig veel varianten van CRT. Ze bevatten essentiële helpercode die door alle door Microsoft gecompileerde uitvoerbare bestanden wordt gebruikt om uw uitvoerbare bestand te “shim” of te helpen werken op het steeds groter wordende aantal OS-versies en hardware. Als de MSVC-compiler wordt gebruikt, wordt de relevante CRT-DLL tijdens het compileren automatisch gekoppeld. (Als de DLL tijdens het compileren niet kan worden gevonden, wordt er een koppelingsfout gegenereerd.)

Een manier om de DLL niette vereisen, is door deze “statisch te koppelen” aan uw project. Dit betekent dat u in wezen de inhoud van ucrtbased.dllneemt en opneemtin uw uitvoerbare bestand. Uw bestandsgrootte wordt ongeveer zo groot als ucrtbased.dll.

Trouwens, als je ooit een MSVC-programma hebt uitgevoerd (meestal van een ander persoon, een van je oude gecompileerde programma’s van een eerdere versie van het besturingssysteem, of het jouwe van een andere machine) en het start niet, met een foutmelding van “Microsoft Visual C++ 20xx Redistributable” of “run-time” nodig heeft – dan betekent dit dat het het benodigde *crt*.dll-bestand niet kan vinden. Door dat specifieke herdistribueerbare pakket (indien bekend) te installeren, wordt de DLL geïnstalleerd en kan het programma worden uitgevoerd… of in ieder geval voorbij die fout en u waarschuwen voor een andere ontbrekende DLL.

Als u zich in deze “DLL Hell”-situatie bevindt, google dan “dependency walker” voor een geavanceerde tool om te laten zien welke DLL’s nog ontbreken. Dit gebeurt meestal niet met professionele software, simpelweg omdat hun (grote, gebundelde) installatieprogramma’s controleren op ontbrekende afhankelijke bibliotheken (inclusief CRT) en deze eerst installeren.


Antwoord 2, Autoriteit 10%

Het probleem is opgelost door Visual Studio 2015 opnieuw te installeren.


Antwoord 3, Autoriteit 10%

RDTSC oplossing werkte niet voor mij.

In de eerste plaats gebruik ik Visual Studio 2015 Express, waarvoor installatieprogramma “Modify” -vraag geen “Common Tools for Visual C++ 2015” -optie “voorstelt, kunt u uitschakelen.

Ten tweede, zelfs na 2 verwijder / opnieuw installeren (vele uren wachten op hen om te voltooien …), het probleem blijft nog steeds.

Ik heb het probleem uiteindelijk opgelost door de hele Windows SDK opnieuw te installeren vanuit een stand-alone installatieprogramma (onafhankelijk van Visual C++ 2015-installatie):
https://developer.microsoft.com/fr-fr / Windows / Downloads / Windows-8-1-SDK
of
https://developer.microsoft.com/fr-fr/windows / Downloads / Windows-10-SDK

Dit heeft het probleem voor mij vastgesteld.


Antwoord 4, Autoriteit 7%

Een eenvoudige manier om dit probleem op te lossen is het volgende uit (klik op afbeeldingen om te zoomen):

Zorg ervoor dat u Visual Studio sluit en ga vervolgens naar uw Windows Start -> Control Panel -> Programs and Features. Doe dit nu:

Een Visual Studio-venster zal openen. Hier gaat u door:

Selecteer het selectievakje voor Common Tools for Visual C++ 2015en installeer de update.

De update kan enige tijd duren (~5-10 minuten). Nadat Visual Studio met succes is bijgewerkt, opent u uw project opnieuw en drukt u op Ctrl + F5. Uw project zou nu zonder problemen moeten worden gecompileerd en uitgevoerd.


Antwoord 5

Ik weet niet zeker of het zal helpen, maar je kunt dit proberen. Dit werkte voor mij

Start -> Visual Studio Installer -> Repair

schakel hierna de Microsoft Symbols Server in onder

TOOLS->Options->Debugging->Symbols

Hiermee worden automatisch alle problemen ingesteld.

Je kunt ook naar deze link verwijzen

https://social.msdn.microsoft.com/Forums/vstudio/en-US/6aa917e5-a51c-4399-9712-4b9c5d65fabf/ucrtbasedpdb-not-loaded-using-visual -studio?forum=visualstudiogeneral


Antwoord 6

Ik zou graag een aanvullende oplossing willen voorstellen om dit probleem op te lossen. Ik raad daarom aan om de nieuwste Windows SDKopnieuw te installeren/installeren. In mijn geval heeft het me geholpen om het probleem op te lossen bij het gebruik van Qtmet de MSVC-compiler om een programma te debuggen.

Other episodes