msvcp90d.dll应该来自哪里?

时间:2010-08-01 05:29:51

标签: visual-studio-2008

VC调试CRT的故事是什么?它应该来自哪里?

特别是在我的机器上运行VS2008和VS2010我没有在c:\ windows \ winsxs中安装amd64版本?

在互联网上阅读此内容非常令人困惑,我觉得每个人都在乱砍,将比特复制到C:\ windows \ system32等。

我想在哪里获得调试CRT以及如何正确安装它?我看到在VS安装期间,二进制文件被复制到C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ redist。

现在是什么?

2 个答案:

答案 0 :(得分:4)

Microsoft不希望您将Debug CRT DLL放在最终用户计算机上,因此它们不会为其提供安装程序。

引自the VC2005 doc on MSDN我认为这仍然适用于2008年(重点是我的):

  

应用程序的调试版本是   不可再分发和没有   调试各种Visual的版本   C ++动态链接库(DLL)是   再发行的即可。调试版本的   应用程序和Visual C ++库   只能部署到另一个   计算机内部的开发   网站的唯一目的是调试   并测试您的应用程序   没有Visual C ++的计算机   2005安装。

如果您需要在其他计算机上测试应用程序的调试版本,您仍然可以:

  • 将DLL和清单从C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist复制到您的应用程序目录
  • 将Microsoft_VC90_DebugCRT_x86.msm合并模块包含在您自己的安装程序中。

答案 1 :(得分:0)

我尝试了上面的第一个选项 - 将DLL和Manifest从C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ VC \ redist \ Debug_NonRedist复制到我的应用程序目录

我的测试机器上的SxS系统一直抱怨(通过sxstrace)版本号不正确。

Interad,我在c:\ Windows \ winsxs \ Manifests \ amd64_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.21022.8_none_4ec74c6b3093419c.manifest中找到了更新版本的清单,并将其复制到测试应用程序中的Microsoft.VC90.DebugCRT.manifest 。目录