Windows 2003上针对托管c ++ dll的FileLoadException

时间:2008-10-09 00:10:35

标签: c# .net c++

我的公司已与GroupWise和Exchange 5.5 / 2000 +进行登录集成。 Exchange 5.5 / GroupWise逻辑使用wldap32.dll(win32)完成,因此登录代码位于托管c ++类中。当配置工具(或后端服务)尝试在我的XP开发盒上加载由此托管c ++项目构建的dll时,它可以正常工作。在QA / Customer Windows 2003框中,抛出FileLoadException。

首先,这曾经工作得很好。其次,我已经验证了我的盒子上相同的工作代码在qa盒子上失败了。

如何追踪此异常的原因?

2 个答案:

答案 0 :(得分:1)

您最近是否更改了开发环境?特别是您是否安装了Service Pack或Visual Studio的新版本?

您似乎正在链接客户端服务器上不可用的C ++运行时。您可以使用Windows事件查看器来识别无法加载的DLL,或者如果没有显示任何内容,请使用depends.exe查看哪些运行时DLL是托管代码的依赖项。

微软已经开始使用并行安装来处理“DLL地狱”,基本上这允许在Windows安装上同时安装多个版本的DLL(并排)并让应用程序加载正确的运行时DLL的版本。 Visual Studio的最新版本使用了这项技术,因此我怀疑这是导致“突然”不兼容的原因。

答案 1 :(得分:0)

不回答我自己的问题,但支持刚刚用本段后面的文字更新了错误。我仍然对追踪这种情况的想法感兴趣。

通过下载和安装Visual C ++ 2008 Redistributable解决 IMS上的Windows程序包: http://www.microsoft.com/downloads/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&DisplayLang=en