2010-06-24 60 views
0

我決定今天修改一些代碼,並遇到一個對我來說沒有任何意義的錯誤。我有一個名爲IDatabase的接口和一個繼承它的類,名爲Database。我原本只是把IDatabase放在與Database相同的組件中,但我不喜歡這個,因爲它會阻止另一個人在沒有整個組件的情況下創建一個新類型的IDatabase。我將IDatabase移動到一個名爲LibraryInterfaces的新單獨程序集中,並更改了項目中的所有參考。無法從程序集'<程序集名稱>'加載類型'<typename>'

該項目編譯好,但是當我執行它,我得到的錯誤:

Could not load type 'Company.Database.IDatabase' from assembly 'Company.Database'. 

這沒有任何意義,我,因爲我感動IDatabase的定義LibraryInterfaces!我再次檢查正在運行的文件夾中的文件,並且文件是正確的。我甚至在Reflector中打開它們,只是爲了仔細檢查所有的引用,而且這些引用也是正確的。我也刪除了我的using聲明,並且完全符合IDatabase的所有用法,即使這樣也沒有辦法!

有沒有人有解決此問題的提示?

回答

2

我遇到過類似的問題。刪除bin文件夾中的所有內容,清理解決方案並重建。

+0

我認爲那些問題是過去的方式 - 我曾經用VC++做過這件事,但之前並沒有用過C#。謝謝,我現在就試試! – Dave 2010-06-24 16:03:41

+0

絕對沒有這個伎倆,謝謝!我無法相信這仍然是必須要做的事情。任何人都可以解釋爲什麼這是事實嗎? – Dave 2010-06-24 16:35:13

+0

我不知道實際的原因是什麼,但某些地方的某些引用不會更新。很高興解決了你的工作:) – Patricia 2010-06-24 17:14:26

2

您可能已經改變了所有的引用,但是做一些引用又引用了舊的程序集?這是開源項目Refix在太久之前應該能夠解決的問題之一(爲無恥插件道歉)。

相關問題