在尝试启动某些应用程序时收到“由于未找到 MSVCR110.dll,因此无法继续执行代码”错误后,我重新安装Microsoft Visual C++ 2012
并重新启动。没有用。然后我安装了Microsoft Visual C++ 2015, 2017 and 2019
来自微软网站并重新启动。没有用:仍然收到相同的错误消息。
无论我做什么,MSVCR110.dll
都不会存在于C:\Windows\System32
。
知道这里发生什么事了吗?
答案1
我从未遇到过安装 Microsoft Visual C++ 可再发行组件的问题。因此,我认为您的 PC 上存在特殊情况,导致安装程序无法将该文件放入c:\windows\system32
或c:\windows\SysWow64
。如果我是对的,您可能还会错过其他 MS VC++ DLL,即使您尚未注意到这一点。
例如,病毒扫描程序可能会阻止安装软件在 Windows 系统目录中安装任何内容,或者可能认为该 DLL 是恶意的。因此,我首先会尝试暂时禁用病毒扫描程序,然后执行 VC++ 2012 运行时的两个版本(32 位和 64 位)的安装程序。您可以从这里(该文件来自 Visual C++ 2012)。
如果安装程序因为运行时已安装而拒绝安装,请先尝试卸载当前版本,然后再次运行安装程序。
当病毒扫描程序仍处于禁用状态时,请检查当前有问题的 DLL 是否分别位于c:\windows\system32
和 中c:\windows\SysWow64
。然后重新启用病毒扫描程序并尝试启动有问题的应用程序。如果错误仍然发生,请再次检查文件是否仍然存在于 Windows 系统目录中。如果不存在,则说明当您重新启用病毒扫描程序或应用程序想要访问它们时,病毒扫描程序已将它们从那里删除。在这种情况下,您必须将文件列入病毒扫描程序的白名单中。
如果您找不到(或记不住)阻止这些文件被复制到 Windows 系统目录中的设置或软件组件,您可以采用更“手动”的方法:从我上面链接的页面,您可以下载vcredist_x86.exe
和vcredist_x64.exe
。虽然这两个文件都是可执行文件,但您可以手动解压它们(无需运行它们)。例如,WiX 工具集可以做到这一点,至少您感兴趣的 2012 版本可以做到这一点,并且可能还有其他一些打包程序可以做到这一点。
解压这些可执行文件后,您将在解压的文件夹中看到所需的 DLL。从那里,将它们手动复制到相应的 Windows 系统目录中,然后尝试现在是否可以启动有问题的应用程序。同样,如果您在复制文件后可以立即在 Windows 系统目录中看到它们,但它们后来消失了,您必须找出系统中的哪个软件组件或设置导致它们被删除。
答案2
因为 VS 没有安装重新分发包的两个体系结构。请同时安装 (x86 和 x64),您的问题将迎刃而解。
https://www.microsoft.com/en-us/download/details.aspx?id=30679#
答案3
在许多情况下,确保MSVCR110.dll
应用程序能够找到它的最佳方法是将其复制到与可执行文件相同的文件夹中。当其他方法都不起作用时,我就会这样做。
请注意,DLL 有两个版本:64 位和 32 位。您应该使用与可执行文件具有相同架构的 DLL 版本。
许多产品在自带的文件夹中已经安装了正确的 DLL,因此与安装(或未安装)的版本无关。请检查有问题的产品是否在其某些安装文件夹中包含此 DLL。
答案4
尝试运行 sfc /scannow
,然后重新安装 * Microsoft Visual C++ 2012 update 4* 32 位和 64 位,如果它要求您卸载,请卸载后重新安装。您可能还需要重新安装该应用程序。将缺失的 dll(msvcp*.dll 和 msvr*.dll)复制到System32或者系统WOW64可能有帮助。