2010-10-07 90 views
2

我们有一个(主要)通过interop调用一些C++库的C#/ WPF应用程序。是否有与DEBUG DLL的VC++ 2008可再发行组件包的版本?

出于测试目的(因为在第三方库某些不一致的),我们想发布一个调试版本或我们的应用程序在目标计算机上,部分用于远程调试。

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

是否与调试库版本的VC++再发行组件包,或做不到这一点,有没有把这些库在测试机上的“首选”的方式?

感谢, WTS

+2

你看过吗? http://msdn.microsoft.com/en-us/library/aa985618%28VS.80%29.aspx。另请看http://msdn.microsoft.com/en-us/library/ms235299.aspx – Tim 2010-10-07 13:53:36

+0

完美 - 谢谢!我正在寻找这样的文档 - 我的Google Fu失败了我。 – 2010-10-07 14:29:14

回答

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 
+1

我不会推荐手动复制SxS(跳过所有注册内容)。 – YeenFei 2010-10-07 14:48:26

+0

那么,我真的做过一次没有任何问题(他们不是COM DLL,为什么他们需要注册?)。但YMMV :) – 2010-10-07 14:59:57

+0

我可能会选择这个作为答案,因为这与上面的@ Tim的评论一起,允许我安装这些文件(就像原来的questio一样)。但是,我仍然收到相同的错误,并且DependencyWalker仍然表示无法找到MSVCM90 *文件。但它试图在本地目录中找到它,所以它几乎就好像它们没有在安装中注册一样。 – 2010-10-07 15:01:11

相关问题