问题
When I try to execute my program I receive FileNotFoundException, howerver dll exist in the same folder. How is that possible and how to fix the problem? Output below translated from localized messages of Russian Windows Server 2008 R2 Foundation:
C:\Oleg\bin\fast>FAST.exe
Exception: System.IO.FileNotFoundException: Can't load "QuickFASTDotNet.dll"
or dependent component. Can't find this file.
in FAST.FAST..ctor()
in FAST.Program.Main(String[] args) in C:\Oleg\fast\FAST\FAST\
Program.cs:line 474
C:\Oleg\bin\fast>dir QuickFASTDotNet.dll
16.02.2012 16:45 117 760 QuickFASTDotNet.dll
The same binaries work on my Windows 7 machine (but doesn't work on another Windows Server 2008 R2 Foundation machine).
回答1:
Please check out Debugging Assembly Loading Failures.
Most likely reason is some related file is not installed in the GAC on you Server machines, or x86/x64 mismatch.
回答2:
Perhaps, QuickFASTDotNet.dll call some function of another library and these library not found. You can use dllexp to check it.
回答3:
I was getting same error when the file has been blocked by Windows since it's been copied from another computer. Right click on the dll file and click on "Unblock" button from the security tab
See https://superuser.com/questions/38476/this-file-came-from-another-computer-how-can-i-unblock-all-the-files-in-a
来源:https://stackoverflow.com/questions/9503429/filenotfoundexception-when-loading-dll