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

 风之伤ASH 发布于 2023-01-30 13:13

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

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

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

使用/ MTd而不是/ MDd编译:实际上这确实解决了问题,但我不允许:我的程序是更大程序的一部分,而/ MD [d]是强制性的.

安装VS 2010 Redistributable软件包:这不起作用,因为我安装了VS 2012,因此此安装程序告诉我:"已在计算机上检测到更新版本的Microsoft Visual C++ 2010 Redistributable."

查找,拖放一个版本的MSVCP100D.dll到正确的目录:我不会将未知的DLL丢弃到可能会干扰其他事情的地方.

最后的手段:重新安装VS2010/VS2012:可能,但因为它也意味着重新安装我需要的许多其他软件包和插件,如果不是绝对必要,我想避免这种情况.

还有其他选择吗?

1 个回答
  • 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团队可能认为你已经这样做了,但我建议他们把它推到远程工具包中.

    2023-01-30 13:16 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有