2011-08-30 37 views
1

我轉換從VS2008/.NET 3.5的溶液中,以2010 VS/.NET 4.如何調試VS 2010抱怨未引用的程序集,以及未引用?

我得到這樣的:

錯誤CS0012:類型 'xxx.yyy' 在組件定義的未被引用。您必須添加對程序集'xxx,版本= 1.0.0.301,Culture = neutral,PublicKeyToken = null'的引用。

問題是,項目中沒有使用xxx.yyy類型的代碼,而且從該項目引用的其他程序集都沒有引用程序集xxx。

關於如何調試的建議?

更新:Mistery解決了。

假設錯誤出現在程序集AAA中的類A的一行上。

這是由AAA.A實現接口AAA.IA使用引用程序集BBB中的BBB.B類型引起的。

反過來,BBB.B的實現使用編譯器所抱怨的類型xxx.yyy。

Mark Gravell的回答當然是解決問題的方法。

+0

它指向特定的代碼行嗎? –

+0

是的。實際上有兩個錯誤指向同一行關於不同類型(都在同一個程序集中定義),並且沒有任何與該行代碼中的任何類型相關的錯誤。 –

+1

如果您要*顯示*這些行,以及任何有關其中提及的任何類型的有趣內容,例如他們的基本類型。 –

回答

3

通常這意味着在公共API上有一個成員 - 通常是接口或基類型,這是必需的。修復很簡單:添加參考。編譯器不會做出來的;該引用必須使用某處,否則編譯器如何知道它。如果您舉一個更具體的例子,我們可能會說明爲什麼需要它。

+0

關於編譯器如何知道 - 在解決方案中還有其他項目依賴於程序集xxx和麻煩的程序集。我會嘗試自己加載有問題的項目,看看會發生什麼。 –

+0

我只是加載項目,它仍然給出錯誤,所以你正在做的事情。我只需要弄清楚編譯器是從哪裏來的。 –

+2

這是一個引用程序集,引用了未引用的程序集:)。我不明白爲什麼這不會自動級聯,但 - 爲什麼它在編譯時會中斷?也許你可以指點我進一步閱讀。 –

相關問題