2013-10-23 138 views
4

我在我的c#應用程序中使用DllImport。它在我的Windows 7機器上工作正常,但在Windows 8上,它提供了DllNotFoundException。.net dllimport DllNotFoundException但dll確實存在。

我們對他的Windows 7計算機同樣的問題,一位顧客。

我甚至砍死的代碼只是像這樣

[DllImport("C:\\Program Files (x86)\\MyApp\\A.dll", CallingConvention = CallingConvention.Cdecl)] 
private static extern void foo(string filename, MulticastDelegate callback); 

供應的絕對路徑來測試它,但它仍然給在路徑C DllNotFoundException:\程序文件(x86)\ MyApp的\ A。 DLL ....

但DLL確實存在! ....

+0

在32位機器上,路徑PROGRAMFILES是'C:\ Program Files文件\'** **不'C:\程序文件(x86)\ – spender

+0

我知道這只是我的64位Windows 8機器上的一項測試,以查看絕對路徑是否可以解決問題,但不是。 – pdiddy

+0

你檢查過文件/目錄權限嗎?即用戶帳戶的運行,因爲它實際上可以看到並閱讀該文件? – tolanj

回答

0

路徑中有空格,所以我的猜測是使用:

[DllImport("\"C:\\Program Files (x86)\\MyApp\\A.dll\"", ...]