Wenn die C++ - Laufzeit msvcr80.dll in einer kompilierten Bibliothek fehlt, gibt es eine Möglichkeit festzustellen, welche Version verwendet wurde, um die Bibliothek zu erstellen oder um sie auf einer späteren Version von msvcr80.dll auszuführen?Fehlende msvcr80.dll
Antwort
Das VC80 SP1 CRT-Redistributable-Paket installiert die RTM- und SP1-Versionen der C-Laufzeit in %SystemRoot%\WinSxS
(vorausgesetzt, Sie verwenden Windows XP oder Vista; Windows 2000 unterstützt keine Side-by-Side-Assemblys). Wenn VC8 installiert ist, befindet sich das verteilbare CRT-Paket in %ProgramFiles%\Microsoft Visual Studio 8\VC\redist
. Wenn Sie VC8 nicht installiert haben, können Sie das verteilbare CRT-Paket von Microsoft.com herunterladen.
, auch genau das, was CRT-Version (zB RTM vs. SP1), um herauszufinden, durch ein binäres benötigt wird, die mit VC8 oder VC9 gebaut wurde, können Sie das Manifest extrahieren:
mt.exe -inputresource:mydll.dll;#1 -out:mydll.dll.manifest
Suchen Sie nach so etwas wie dies:
<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
Meine ausführbare Datei erfordert CRT-Version 9.0.21022.8. Diese Versionsnummer wird auch in den WinSxS
Verzeichnisnamen eingebettet (leider wird es von Hashes umgeben):
D:>dir c:\windows\WinSxS\*VC90.CRT*
12/14/2007 02:16 AM <DIR> amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_750b37ff97f4f68b
12/14/2007 02:00 AM <DIR> x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91
Dependency Walker wird Ihnen helfen, diese Frage zu beantworten.
Wenn Sie das Authoring und die genannten DLL verteilen, sollten Sie ein Merge-Modul für Visual C++ 8.0 CRT Verwendung als Teil Dein Installateur.
Ich habe festgestellt, dass es ein neues mt.exe-Tool und neue Visual C++ CRT in Windows SDK 6.1 ist. Ich verwende das Merge-Modul als Voraussetzung im InstallShield 12-Installer mit großem Erfolg.
- 1. Fehlende DLL-Problem
- 2. .NET/Silverlight fehlende DLL
- 3. Fehlende msvcr100.dll
- 4. Fehlende DLL-Dateien bei Verwendung von Pyinstaller
- 5. Fehlende MSVCR120_CLR0400.dll in Windows 8 Embedded
- 6. Expat XML Parser (statische Verbindung, dll Fehler (fehlende definieren?)
- 7. Fehlende vcruntime140.dll für wxMEdit 3.1 in Windows 7
- 8. Fehlende .dll, wenn ich versuche, meine Anwendung zu starten
- 9. Fehlende Bibliotheken uFCoder
- 10. JNA: Fehlende einige spezifische Methoden
- 11. Wie kann man fehlende Lua DLL bei Verwendung von LuaBinaries und LuaBridge beheben?
- 12. Wie finde ich heraus, welche fehlende DLL meine .NET-Anwendung beim Start abstürzt?
- 13. Fehlende anmerkungen.jar
- 14. fehlende Variable
- 15. Bash: Fehlende ']'
- 16. Fehlende Warteoperatoren?
- 17. Fehlende Cachedateifehler?
- 18. qt 5.2.0 Windows 7 fehlende dlls (Programm stürzt ab)
- 19. DLL 'OraOps12.dll kann nicht geladen werden
- 20. Den Namen einer DLL aus der DLL
- 21. Aufruf nicht-DLL-Funktion von DLL-Funktion
- 22. Kann eine DLL eine .NET DLL aufrufen?
- 23. C++/CLI fehlt MSVCR90.DLL
- 24. SQL Server SMO beschwert DLL
- 25. Twitterizer dll
- 26. DLL Entlastungsprozedur
- 27. Verschiebbare DLL
- 28. ACE_DLL :: Öffnen fehlgeschlagen für einige DLL-Datei
- 29. Fehlende Informationen Stacktrace
- 30. ExecuteScalar fehlende Assembly-Referenz
Mt.exe ist ein Tool, das im Microsoft SDK/Visual Studio-Paket zum Auswerten von Manifesten bereitgestellt wird. Weitere Informationen zu mt.exe finden Sie auf der MSDN-Dokumentationsseite: http://msdn.microsoft.com/en-us/library/aa375649(VS.85).aspx (achten Sie darauf und sehen Sie sich den Benutzerinhalt an unten) – Steve