我面临以下(相当常见)问题:我在VS2010和/或VS2012中以调试模式运行我的程序,但在启动时崩溃,说:
程序无法启动,因为您的MSVCP100D.dll丢失了 电脑。尝试重新安装该程序以解决此问题。
现在我找到了许多可能的解决方案,但它们都不适用于我:
还有其他选择吗?
答案 0 :(得分:9)
Visual Studio REDIST软件包从不部署CRT文件的DEBUG版本。这是按设计。
使用VS 2012或更高版本,部署CRUB的DEUBG版本的最简单方法是在测试计算机上安装“远程调试工具”软件包。
对于VS 2012,最新的远程调试工具包为here
对于VS 2013,最新的远程调试工具包为here。
另一种选择是仅使用DLL的应用程序本地部署(即将其复制到您的app目录中)。再次这仅用于测试目的。对于应用程序的实际部署,您需要使用CRT的非调试版本。
如果您的开发计算机上发生此错误,那么您还有其他问题,因为安装了VS 2012后,您应该在该计算机上安装VS 2012 DEBUG CRT。
UPDATE :: 抱歉,我原本希望调试CRT DLL与远程调试器位和Direct3D 11调试设备一起包含在远程调试工具包中。唉,事实并非如此。见Preparing a Test Machine To Run a Debug Executable。您必须使用Program Files (x86) directory in \Common Files\Merge Modules
中的MSM或从Program Files (x86) directory in \Microsoft Visual Studio <version>\VC\redist\Debug_NonRedist\
并行复制DLL。 VS团队可能认为你已经这样做了,但是我建议他们把它推到远程工具包中。
答案 1 :(得分:1)
我有一个类似的问题(在VS 2012中制作的项目但是我在运行VS2013)并通过以下方式解决了这个问题:
在VS2013(或更新版本)中打开项目(或解决方案)
打开“项目”菜单并选择“重新定位项目”选项(这是第一个选项,但在应用之后,此选项消失了。)
重建您的解决方案。
答案 2 :(得分:0)
我是openCV和C ++的新手,在Windows 7,32位平台上使用openCV 2.4.10和Visual Studio Express 2013时遇到了同样的问题。如果我在不使用OpenCV的情况下编写了一个简单的程序,程序就会运行,但是当我使用OpenCV时,我得到了丢失的DLL错误。
This post明确了事情:
我猜我遇到的问题不是我的Visual Studio而是我的OpenCV。 OpenCV是在一个需要MSVCP110.dll的visual studio版本上编译的。我本可以尝试使用VS2013的另一个版本的OpenCV或再次编译OpenCV,但我的时间不够。相反,我在其他地方找到了dll文件并将其放在我的system32文件夹中(不确定是否推荐)。这解决了这个问题。但是,正如@slater所提到的,由于安全问题,我不建议从外部网站下载dll。
答案 3 :(得分:0)
这是调试运行时DLL。如果(并且仅在!),而您只想在未安装Visual Studio的系统上运行自己的应用程序的调试版本,则可以在以下位置找到缺少的DLLs
C:\Windows\System32
(用于64位版本)C:\Windows\SysWOW64
(用于32位版本)只需继续复制DLL,直到可执行文件运行即可。
如果这不是您要尝试的操作,请参考https://stackoverflow.com/a/27386721/2279059,这是正确的,但不太实用的答案。
答案 4 :(得分:-1)
我遇到了同样的问题,我发现原因是我在VS2013项目中使用了VS2012编译的dll。 JUST下载了丢失的dll并将其放在我的链接器路径和wala中:程序运行正常。我是从http://www.dll-files.com/下载的。
详细说明:我的程序在发布模式下工作,但在调试模式下没有,因为它说MSVCP110D.dll丢失了。我的代码是一个opencv图像处理程序。我将缺少的dll放在VS2013项目选项中的opencv链接器路径中。