2012-11-08 641 views
0

我有2個項目,奇怪的錯誤:System.IO.FileNotFoundException:未能加載文件或程序

第一個項目C#項目中,我有一個空白表格(新項目)。 我正在編譯這個表單作爲一個DLL,所以我可以參考表單。

VB項目是一個ExcelDNA項目,它由一個自定義任務窗格和一個打開窗體的按鈕組成,任務窗格工作正常。 但是,單擊該按鈕時,我收到以下錯誤:

System.IO.FileNotFoundException: Could not load file or assembly 

我能得到這個由VB項目創建一個用戶控件,然後通過按鈕訪問它的工作,但我已經形式寫在C#已經並且不想將其轉換爲VB。

+1

那麼,DLL必須可以通過ExcelDNA項目訪問。如果這是常規應用程序,請確保將DLL複製到BIN文件夾中。如果這是某種Excel加載項,那麼您可能需要部署該DLL;將它放在BIN文件夾中是不夠的。 PS。在那裏拋出一個斷點,並檢查當前Assembly(使用Reflector命名空間)從哪裏調用 - 這就是你的DLL應該在哪裏。 – Shaamaan

+0

什麼是程序集...... – SpaceBison

+0

感謝Shamaan,它的工作原理,我只需要將C#表單dll複製到我的Excel加載項所在的目錄中。 – Dreamer78692

回答

0

因此,答案是確保您的表單Dll被複制到您的Excel加載項所在的目錄中。

1

沒有必要將項目轉換爲VB.NET。此錯誤是因爲.net運行時無法找到程序集(包含您的第一個窗體的DLL或EXE)。在Visual Studio中,打開Solution Explorer窗口並展開References節點。右鍵單擊對第一個程序集的引用,然後單擊Properties。在屬性窗口中將Copy Local更改爲True

這樣Visual Studio會將程序集複製到項目的輸出文件夾('bin \ Debug'或'bin \ Release')。

+0

謝謝..但我已經這樣做了,看來我只是需要將C#表單dll複製到我的Excel加載項所在的目錄中。 – Dreamer78692

+1

@ Dreamer78692好的,是的。您需要部署這兩個程序集。這意味着,您需要將這兩個程序集複製到所需的文件夾。 –

相關問題