2011-11-19 129 views
4

在我的筆記本電腦,在那裏我開發WPF應用程序,一切工作正常,調試和啓動的.exe程序。無法加載DLL「MYDLL.DLL」:指定的模塊找不到

我的應用程序使用本機DLL,爲解決這個問題,參考我斌/調試(發佈)文件夾中添加DLL。我訪問它使用的DllImport這樣的:

​​

問題是,當我嘗試到另一臺PC上運行.exe程序,當我需要訪問它崩潰DLL。我做一個手柄記錄任何未處理的異常,並出現以下錯誤:

無法加載DLL「xptodll.dll」:指定的模塊無法找到 。從HRESULT異常:0x8007007E)

中的bin/debug目錄具有xptodll.dll和應用文件:.exe文件,。應用,.exe.config,.exe.manifest,.PDB。

也許這是很重要的,在xptodll.dll與硬件交互,但爲什麼也不會轉回去它必須在兩臺機器上相同的行爲?

+0

您是爲x86還是x64編譯?您的筆記本電腦和其他電腦的操作系統位數是否不同? 64位exes無法加載32位DLL,而硬件接口DLL通常不能用AnyCPU等進行管理和寫入。 –

+1

你不能在另一臺機器上獲得你的DLL的調試版本,它不會有可用的CRT調試版本。只部署發佈版本。並部署它需要運行的DLL:http://www.microsoft.com/download/en/details.aspx?id=5555 –

+0

,我必須安裝在每一臺機器的vC++ 2010我安裝的應用程序? 爲什麼VisualStudio在創建安裝項目時不會捕獲依賴關係?只檢測.net依賴.... –

回答

15

有可能是一些進一步的依賴是失敗的。我的猜測是,xptodll.dll本身依賴於在失敗的機器上缺少的其他庫。 xptodll.dll的文檔應該說明需要什麼依賴關係。如果文檔沒有明確說明丟失的內容,則可以使用Dependency Walker自己診斷問題。

+1

好,缺少一個依賴項,IEShims.dll。現在將該dll複製到bin/debug文件夾,問題就解決了嗎? –

+0

你的問題解決了嗎? –

+0

是的,它在.exe文件夾中放置更多4個Windows dll後似乎運行正常。這是解決方案嗎?有沒有其他方法來解決這個問題? –

2

另一個問題可能是(旁邊的這一切「擺在正確的位置的DLL」),如果DLL是使用Visual Studio,例如創建。 Visual Studio 2012也必須安裝VCRedistributable for 64位(vcredist_x64.exe),這是Visual Studio提供的。

相關問題