【问题标题】:Is there a version of the VC++ 2008 Redistributable Package with the DEBUG dlls?是否有带有 DEBUG dll 的 VC++ 2008 Redistributable Package 版本?
【发布时间】:2010-10-07 13:46:21
【问题描述】:

我们有一个(主要是)C#/WPF 应用程序,它通过互操作调用一些 C++ 库。

出于测试目的(并且由于第三方库中的一些不一致),我们希望在目标机器上分发调试版本或我们的应用程序,部分用于远程调试。

在任何情况下,当这样做时,程序会在加载 C++ dll 时出现可怕的 0x800736B1 错误。这似乎(至少在我们找到下一个绊脚石之前)是由于目标机器上没有安装 VC++ 运行时库的调试版本造成的。

是否有带有调试库的 VC++ 可再发行包的版本,或者如果没有,是否有将这些库放在测试机器上的“首选”方式?

谢谢, wTs

【问题讨论】:

标签: c++ shared-libraries msvcr90d.dll


【解决方案1】:

这是官方的 MS 说明。

Preparing a Test Machine To Run a Debug Executable

使用合并模块将特定 Visual C++ 库的调试版本作为共享的并行程序集安装到本机程序集缓存(WinSxS 文件夹)中。

How to Deploy a Setup and Deployment Project

【讨论】:

    【解决方案2】:

    如果目标计算机在您的控制之下,您可能需要在其上安装 Visual Studio。这将部署运行时的调试版本。

    或者,将并行库从您的开发机器复制到目标机器。查看%windir%\WinSxS。在我的开发机器(VS 2008 SP1)上,它们位于以下文件夹中:

    %windir%\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456
    %windir%\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f
    %windir%\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_5d84dd2f
    %windir%\WinSxS\x86_Microsoft.VC90.DebugMFC_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_2a62a75b
    %windir%\WinSxS\x86_Microsoft.VC90.DebugMFC_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_c94a3a24
    %windir%\WinSxS\x86_Microsoft.VC90.DebugMFC_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_2e6b5034
    %windir%\WinSxS\x86_Microsoft.VC90.DebugOpenMP_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_72b673b0
    %windir%\WinSxS\x86_Microsoft.VC90.DebugOpenMP_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_76bf1c89
    

    【讨论】:

    • 我不建议手动复制 SxS(跳过所有注册内容)。
    • 好吧,我实际上做了一次,没有任何问题(它们不是 COM DLL,为什么需要注册?)。但是YMMV :)
    • 我可能会选择这个作为答案,因为这与上面@Tim 的评论一起允许我安装文件(就像原始问题一样)。但是,我仍然遇到同样的错误,并且 DependencyWalker 仍然说找不到 MSVCM90* 文件。不过,它正试图在本地目录中找到它,所以几乎就像这些没有在安装时注册一样。
    • 啊,错过了一个子步骤。还需要包含策略文件的合并模块。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2011-08-25
    • 2011-01-18
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多