【问题标题】:Installing MS debug DLLs for remote debugging安装 MS 调试 DLL 以进行远程调试
【发布时间】:2011-03-31 17:40:03
【问题描述】:

我有一个 .NET 应用程序,我想将它安装在 VM 上以进行远程调试。

该应用程序使用原生 VC++ DLL,它通过 DLL 链接到 MFC 和 MSVC 运行时库。

当我运行依赖VM时,它说DLL需要以下DLL:

mfc90d.dll    
msvcm90d.dll    
msvcp90d.dll    
msvcr90d.dll    
msjava.dll

此外,它还报告以下错误:

错误:[dll 路径] 的并行配置信息包含错误。 此应用程序无法启动,因为应用程序配置不正确。 重新安装应用程序可能会解决此问题 (14001)。

我不希望仅仅为了调试而在 VM 上安装完整的 Visual Studio 2008。

将所需的 DLL 安装到 VM 上的最佳方法是什么?

【问题讨论】:

    标签: visual-studio-2008 visual-c++ dll remote-debugging visual-c++-installer


    【解决方案1】:

    调试 DLL 在 vc\Debug_NonRedist 子目录中提供。 MSDN Library article 中解释了如何正确部署它们。

    【讨论】:

    • 最简单的方法是将 DLL 复制到您的应用旁边(与可执行文件在同一目录中)。没有更多的问题:)
    【解决方案2】:

    在 SP1 更新后,vs2008 中存在/曾经存在清单版本未更新的错误。为了解决这个问题,我必须在远程机器上这样做:

    编辑 Microsoft.VC90.DebugCRT.manifest 改变 版本="9.0.30729.4148" 到 版本="9.0.21022.8"

    编辑 Microsoft.VC90.DebugMFC.manifest

    改变 版本="9.0.30729.4148" 到 版本="9.0.21022.8"

    [更新]在寻找参考资料时,我发现了

    重要提示:如果您使用 Visual Studio 2008 SP1 执行此操作,请确保将以下内容放入预编译的标头中:

    #define _BIND_TO_CURRENT_VCLIBS_VERSION 1

    http://qualapps.blogspot.com/2008/07/visual-studio-2008-c-redistributable.html

    【讨论】:

    • 如果您有带有 SP1 的 VS2008,这可能是正确的答案:确实,您的链接调试 DLL、EXE 在其清单中引用版本 9.0.21022.8 - 而不是 9.0.3xxx。因此,只需从您的 ...\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugCRT 部署 msvcrt 并按照上述说明编辑清单文件。
    【解决方案3】:

    可以为 VC++ 安装调试可再发行文件。 Microsoft 甚至将它们提供给您。您只需要远离 system32 目录中的那些,因为它们不能通过简单地将它们复制到另一台机器来工作。

    查看此博客: http://wdy501.blogspot.com/2010/07/dealing-with-visual-studio.html

    我使用博客找到了 VS 2012 的调试 .dll,并成功地将它们复制到另一台机器并运行调试版本。请注意,MS 将“debug_nonRedist”文件放在标有“Microsoft Visual Studio 11.0”的目录结构中。这是我找到所需的 CRT 调试 dll 的完整路径:

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC110.DebugCRT

    我看到使用调试版本的唯一好处是我可以在我的开发计算机上保持调试模式,并快速将代码转移到另一台计算机上,以便在稍微不同的环境下进行测试。我认为没有充分的理由在最终版本中使用调试版本。

    【讨论】:

      猜你喜欢
      • 2016-08-10
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2011-03-06
      • 2011-06-12
      • 2018-10-14
      • 2012-12-06
      • 1970-01-01
      相关资源
      最近更新 更多