首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++/CLI缺失MSVCR90.DLL

C++/CLI缺失MSVCR90.DLL
EN

Stack Overflow用户
提问于 2010-06-07 22:11:47
回答 2查看 28.9K关注 0票数 9

我有一个c++/cli dll,我在运行时加载它,它在调试模式下工作得很好。如果我尝试以发布模式加载dll,它将无法加载,说明缺少一个或多个依赖项。如果我运行依赖于它,我将从MSVCM90.DLL中丢失MSVCR90.DLL。如果我检查dll的调试版本,它也有缺失的依赖项,但是相对于debug (D)版本。

我已经确保调试/发布嵌入了清单文件。我读到了一些关于应用程序将正在构建的dll加载为任何CPU和构建为x86的dll存在的问题,但我不知道如何将它们都设置为x86。

我正在使用VS2010。

不管怎么说,我已经混了一段时间了,不知道出了什么问题。我肯定有人知道发生了什么。如果需要包括更多的信息,请告诉我。

alt文本http://www.freeimagehosting.net/uploads/fb31c0e256.png

更新:

这最终解决了我的问题:http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/07794679-159b-4363-ae94-a68fe258d827

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-07 22:36:20

MSVCR90是Visual 2008的运行时。如果您正在开发PC上运行应用程序,那么您应该安装调试和发布运行时(作为Visual的一部分),但是您的安装可能出了问题,或者VS2010实际上没有包含旧的运行时。如果您试图在另一台PC上运行该版本,那么它只需要安装运行时。

无论哪种方式,您都可以通过安装Visual 2008可再发行版来修复它--但是请确保您的PC (x86或x64)下载正确。

在VS的早期版本中,您需要您正在编译的版本的运行时,所以如果VS2010遵循这个先例,您将需要MSVCR100,而不是MSVCR90 --这意味着您可能没有用VS2010重新编译dll --这样做可能是让它在您的PC上运行的另一种方法(使用在VS2010安装中的redist ),但请注意,您仍然需要其他用户在他们的PC上安装适当的(VS2010)可再发行版。

至于“任何CPU”还是"x86",这只是64位计算机上的一个问题。在这些系统上,64位应用程序不能动态链接到32位dll。如果您将应用程序编译为“任意CPU”,它将在64位操作系统上编译为64位,如果它试图直接调用任何32位dll,也会崩溃。THe解决方案是构建以"x86“为目标的应用程序,因为这迫使JIT编译器生成32位代码(甚至在64位计算机上),从而确保与您希望调用的dll兼容。如果DLL是托管程序集,那么您可以使用两个应用程序上的任意CPU -- dll,因为它们都是JITted,格式相同。

票数 10
EN

Stack Overflow用户

发布于 2013-03-25 00:26:10

在从Visual 2010迁移之后,我在Visual 2012中运行一个网站,这也发生在我身上。错误消息是MSVCR90.DLL丢失了。解决方案是: 1)删除位于项目路径上的文件夹_bindeployable。( 2)重建。

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2993560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档