3

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

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

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

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

谢谢,wTS

4

2 回答 2

3

这是官方的 MS 说明。

准备测试机器以运行调试可执行文件

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

如何部署安装和部署项目

于 2011-10-20T17:37:40.120 回答
1

如果目标计算机在您的控制之下,您可能需要在其上安装 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
于 2010-10-07T13:56:09.397 回答