2011-04-11 49 views
2

我有2個項目。 第一個只生成一個DLL。不能使用外部DLL:FileNotFoundException

第二個需要第一個DLL。 但是當我打電話從DLL的方法,我有一個FileNotFoundException異常,此消息:

BDD,版本= 1.0.0.0,文化=中立,公鑰=空

我敢肯定的是,文件存在。 我哪裏錯了?

+0

您是否在試圖使用它的項目中添加了DLL作爲參考?或者至少將DLL複製到與編譯的可執行文件相同的目錄中? – 2011-04-11 07:56:50

+3

運行它時,project1.dll是否與project2.exe位於同一文件夾中? – Twelve47 2011-04-11 07:57:34

+0

項目/大會的名稱是什麼? – 2011-04-11 07:59:19

回答

5

同意Kieren(+1)。也許它找到你的DLL,但它需要另一個無法找到的依賴DLL。或者是有一個簽名的問題(也許你正在尋找另一個DLL版本,等...) 要打開融合登錄(你必須創建幾個FO註冊表項): Set LogFailures to 0/1 to disable/enable

BTW,融合是包含加載程序集的邏輯的DLL(探查本地路徑和子文件夾(如果指定),查看GAC,...)。運行完可執行文件後,您會發現一個日誌,詳細說明CLR在加載引用程序集時發現的問題(忽略NativeImage日誌,僅檢查默認日誌)。

0

簡短回答:該DLL需要與EXE位於同一目錄中。

這是這種情況?

1

你能給予充分的消息 - 和:

請記住,在FileNotFoundException可能是引用的DLL的依賴,不只是引用DLL本身。

如果DLL確實存在,您可能需要打開彙編綁定日誌(Fusion日誌)以查看發生了什麼。

+0

我想你需要提供如何打開該日誌的信息。 – 2011-04-11 08:03:15

+0

我將DLL導入到VisualStudio中,沒有問題。 但是,當我從DLL調用方法時,我收到filenotfound ... – g123k 2011-04-11 08:04:28

+0

你不能'導入'一個DLL,你的意思是添加一個引用?這並不意味着太多。也許你可以回答人們所問的問題 - 完全錯誤是什麼,與可執行文件在同一目錄中的DLL是什麼? – 2011-04-11 08:06:06