我们有一个(主要)C#/ WPF应用程序通过互操作调用一些C ++库。
出于测试目的(以及由于第三方库中的一些不一致),我们希望在目标机器上分发调试版本或我们的应用程序,部分用于远程调试。
在任何情况下,当这样做时,带有可怕的0x800736B1错误的程序barfs加载C ++ dll。这似乎是(至少直到我们发现下一个障碍),因为没有在目标机器上安装VC ++运行时库的调试版本。
是否有一个带有调试库的VC ++可再发行软件包的版本,或者说失败了,是否有一种“首选”方式将这些库放在测试机器上?
谢谢, WTS
答案 0 :(得分:2)
以下是官方的MS说明。
Preparing a Test Machine To Run a Debug Executable
使用合并模块将特定Visual C ++库的调试版本作为共享并排程序集安装到本机程序集缓存(WinSxS文件夹)中。
答案 1 :(得分: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