MSVCP90.dll未找到?

9

在我的项目中,如果以发布模式编译项目,会提示我需要 MSVCP90.dll。

但如果是调试模式,就不会出现这个问题...

你有遇到过类似的情况吗?

你知道为什么需要这个 .dll 吗?或者是哪个配置导致了它的需求?

感谢任何建议...


你是否尝试动态链接到外部的 DLL 文件? - Bashar
6个回答

14

我认为你需要安装Microsoft Visual C++ 2008可再发行组件包,你可以在这里获取。


14

我意识到我已经安装了微软Visual C++ 2008可再发行包,所以我只是修复了一下,但这并没有解决问题。

然后我查看了配置,发现在发布版本中,“生成清单”为“否”,而在调试版本中为“是”。

所以我改变了这个设置并再次尝试,然后它就起作用了。

我不知道这个配置会对程序产生如此大的影响(而且我也不记得我何时更改了它)。

无论如何,感谢你的其他回答……


你可以在%WINDIR%/WinSxS目录下查看MS Runtime dlls是如何部署在Windows目录中的。Windows使用清单来确定加载哪个特定的运行时dll。 - Oleg Zhylin
1
另一个可能导致相同问题的选项是:清单工具 | 嵌入清单 = 否。 - Michal Czardybon
谢谢,我愚蠢地禁用了清单文件,这解决了我的问题!谢谢 :) - Brock Woolf
2
值得一提的是,如果有人在使用Qt Creator时遇到相同的问题,你只需要在.pro文件中添加CONFIG += embed_manifest_exe即可。 - Tamás Szelei

3

你是否在硬盘中搜索该文件?您可能会在以下目录中找到它:

C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT

如果在那里,将其复制到 \windows\system32 目录中。

同时复制 msvcm90.dll 和 msvcr90.dll。

如果这不起作用,则解决方案是下载并安装 Microsoft Visual C++ 2008 可再发行软件包。请点击此链接进行下载(约1.8 MB):

http://www.microsoft.com/downloads/thankyou.aspx?familyId=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displayLang=en

查看这里以了解多种解决此问题的方法:

http://pcsupport.about.com/od/findbyerrormessage/a/msvcp90-dll-not-found-missing-error.htm


在这里找到它们:C:\Program Files\Intel\Intel(R) Rapid Storage Technology\Microsoft.VC90.CRT - Jean-François Fabre

1

请检查您的项目设置。如果您的发布版本没有生成清单文件,那么DLL文件需要放在System32目录中。

此外,如果您的发布版本和调试版本都放在同一个目录下,可能会看到调试清单文件,这将指向DLL文件的调试版本。最好的方法是为所有版本生成嵌入式清单文件。


1

你可能在发布配置中关闭了项目中的清单嵌入。


0

有几个文件构成了Visual C++运行时,你可能会遇到其中任何一个文件的问题。你可以查看其他关于以下文件的问题。

  • msvcP90.dll
  • msvcP90d.dll(msvcP90.dll的调试版本)
  • msvcR90.dll
  • msvcR90d.dll(msvcR90.dll的调试版本)

我的初步想法是错误的。这与项目列表无关,而与您试图加粗单词的一部分有关。这是设计上的问题,因为Markdown不应该错误地将代码加粗。请参见Jeff在此处的解释:http://meta.stackexchange.com/questions/1643/bug-bolding-with-isnt-working-properly/1669#1669 - Bill the Lizard
@Bill,文件名中带有M的问题是什么? - Piotr Dobrogost

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接