修复“您的计算机中缺少”MSVCP110D.dll“问题 [英] Fixing the "MSVCP110D.dll is missing from your computer" issue

查看:1348
本文介绍了修复“您的计算机中缺少”MSVCP110D.dll“问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



< blockquote>

程序无法启动,因为
计算机中缺少MSVCP100D.dll。尝试重新安装该程序来解决这个问题。


现在我找到了一些可能的解决方案,但没有一个可以为我工作: / p>



是还有其他任何选择?

解决方案

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



使用VS 2012或更高版本,部署CRT的DEUBG版本的最简单方法是安装远程调试工具软件包。



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



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



另一个选择是使用DLL的应用程序本地部署(即将其复制到你的应用程序目录)。再次,仅用于测试目的。对于实际部署应用程序,您需要使用非调试版本的CRT。



但是,如果您的开发机器发生此错误,那么您还有其他问题,因为在安装VS 2012的时候,你应该在该机器上安装VS 2012 DEBUG CRT。



更新:: 对不起,我会预期将调试CRT DLL与远程调试器位和Direct3D 11 Debug Device一起包含在远程调试工具包中。唉,不是请参阅准备运行调试可执行文件的测试机器。您必须在\Common Files\Merge Modules 中的 Program Files(x86)目录中使用MSM,或者从$ $ c复制DLL并排$ c> Program Files(x86)目录在\Microsoft Visual Studio< version> \VC\redist\Debug_NonRedist\ 中。 VS团队可能认为您已经这样做了,但我建议他们将其卷入远程工具包。


I am facing the following (fairly common) problem: I am running my program in Debug mode in VS2010 and/or VS2012, but at startup it crashes, saying:

The programme can't start because MSVCP100D.dll is missing from your computer. Try reinstalling the program to fix this problem.

Now I found a number of possible solutions, but none of them work for me:

  • Compile with /MTd instead of /MDd: actually this does solve the problem, but I am not allowed to: my program is part of a bigger program, and /MD[d] is mandatory.
  • Install the VS 2010 Redistributable package: This doesn't work because I have VS 2012 installed, so this installer tells me: "A newer version of Microsoft Visual C++ 2010 Redistributable has been detected on the machine."
  • Finding, dragging and dropping a version of MSVCP100D.dll into the correct directory: I am not dropping unknown DLLs into places where they might interfere with other things.
  • Last resort: reinstalling VS2010/VS2012: possible, but as it would also mean reinstalling lots of other packages and plugins I need, I'd like to avoid this if it's not absolutely necessary.

Are there any other options left?

解决方案

The Visual Studio REDIST packages never deploy the DEBUG versions of the CRT files. This is by design.

With VS 2012 or later, the easiest way to deploy the DEUBG versions of the CRT is to install the "Remote Debugging Tools" package on your test machines.

For VS 2012, the latest Remote Debugging Tools package is here

For VS 2013, the latest Remote Debugging Tools package is here.

Another option is to just use application local deployment of the DLL (i.e. copy it into your app directory). Again this is only for testing purposes. For actual deployment of your application, you are required to use the non-debug versions of the CRT.

If this error is happening on your development machine, however, then you have other problems because with VS 2012 installed, you should have the VS 2012 DEBUG CRT on that machine.

UPDATE:: Sorry, I would have expected the debug CRT DLLs to be included in the remote debugging tools package along with the remote debugger bits and the Direct3D 11 Debug Device. Alas, it's not. See Preparing a Test Machine To Run a Debug Executable. You have to either use the MSMs in Program Files (x86) directory in \Common Files\Merge Modules or copy the DLL-side-by-side from Program Files (x86) directory in \Microsoft Visual Studio <version>\VC\redist\Debug_NonRedist\. The VS Team probably assumed you would have already been doing that, but I'll suggest to them to roll it into the remote tools package.

这篇关于修复“您的计算机中缺少”MSVCP110D.dll“问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆