2008-10-09 47 views
0

我的公司已與GroupWise和Exchange 5.5/2000 +進行登錄集成。 Exchange 5.5/GroupWise邏輯使用wldap32.dll(win32)完成,因此登錄代碼位於受管理的C++類中。當配置工具(或後端服務)嘗試加載在我的XP開發框中關閉此託管C++項目構建的dll時,它工作正常。在QA/Customer Windows 2003框中,引發FileLoadException。Windows 2003上的FileLoadException for managed C++ dll

首先,這用於正常工作。其次,我驗證了我的箱子上的相同工作代碼在qa箱上失效。

如何追查此異常的原因?

回答

1

你最近有沒有改變你的開發環境?特別是您是否安裝了Visual Studio的Service Pack或新版本?

看起來您正在鏈接客戶端服務器上不可用的C++運行時。您可以使用Windows事件查看器來識別無法加載的DLL,或者如果此操作不顯示,請使用depends.exe來查看哪些運行時DLL是託管代碼的依賴關係。

微軟已經轉向使用並行安裝來處理「DLL地獄」,基本上,這允許多個版本的DLL在Windows安裝中並行安裝(並排),並使應用程序加載在運行時正確的DLL版本。最近發佈的Visual Studio使用這種技術,所以我懷疑這是你「突然」不兼容的原因。

+0

依賴walker(depend.exe)在這裏是你的朋友,以及只知道你有什麼依賴。這是最常見的情況。 – Nick 2008-10-09 05:11:12