修复"计算机中缺少"MSVCP110D.dll"问题

Yel*_*low 11 dll visual-studio-2010 visual-studio-2012

我面临以下(相当常见)的问题:我在VS2010和/或VS2012中以调试模式运行我的程序,但在启动时崩溃,说:

程序无法启动,因为您的计算机缺少MSVCP100D.dll.尝试重新安装该程序以解决此问题.

现在我找到了许多可能的解决方案,但它们都不适用于我:

  • 使用/ MTd而不是/ MDd编译:实际上这确实解决了问题,但我不允许:我的程序是更大程序的一部分,而/ MD [d]是强制性的.
  • 安装VS 2010 Redistributable软件包:这不起作用,因为我安装了VS 2012,因此此安装程序告诉我:"已在计算机上检测到更新版本的Microsoft Visual C++ 2010 Redistributable."
  • 查找,拖放一个版本的MSVCP100D.dll到正确的目录:我不会将未知的DLL丢弃到可能会干扰其他事情的地方.
  • 最后的手段:重新安装VS2010/VS2012:可能,但因为它也意味着重新安装我需要的许多其他软件包和插件,如果不是绝对必要,我想避免这种情况.

还有其他选择吗?

Chu*_*urn 9

Visual Studio REDIST软件包从不部署CRT文件的DEBUG版本.这是设计的.

使用VS 2012或更高版本,部署CRUB的DEUBG版本的最简单方法是在测试计算机上安装"远程调试工具"软件包.

对于VS 2012,最新的远程调试工具包就在这里

对于VS 2013,最新的远程调试工具包就在这里.

另一个选择是只使用DLL的应用程序本地部署(即将其复制到您的app目录中).同样,这仅用于测试目的.对于应用程序的实际部署,您需要使用CRT的非调试版本.

但是,如果您的开发计算机上发生此错误,那么您还有其他问题,因为安装了VS 2012后,您应该在该计算机上安装VS 2012 DEBUG CRT.

更新::抱歉,我原本希望调试CRT DLL包含在远程调试工具包中,以及远程调试器位和Direct3D 11调试设备.唉,事实并非如此.请参阅准备测试计算机以运行调试可执行文件.您必须使用MSM Program Files (x86) directory in \Common Files\Merge Modules或从中并行复制DLL Program Files (x86) directory in \Microsoft Visual Studio <version>\VC\redist\Debug_NonRedist\.VS团队可能认为你已经这样做了,但我建议他们把它推到远程工具包中.

  • 好吧,不.安装VS 2012远程调试工具不会安装MSVCP100D.dll并且不能解决问题. (3认同)

Rai*_*ore -2

我也遇到了同样的问题,我发现原因是我在VS2013项目中使用了用VS2012编译的dll。只需下载丢失的 dll 并将其放入我的链接器路径中即可:程序运行正常。我从http://www.dll-files.com/下载它。

详细信息:我的程序在发布模式下工作,但不在调试模式下工作,因为它说 MSVCP110D.dll 丢失。我的代码是一个opencv图像处理程序。我将缺少的dll放在VS2013项目选项中的opencv链接器路径中。

  • 好的诊断,坏的解决方案。我建议不要使用下载网站。 (12认同)