2010-09-28 40 views
1

我最近添加了一個新項目到我的Visual Studio 2008解決方案。現在,當我在新項目中進行編輯時,我收到大量類型檢查錯誤(〜50) - 表示可能缺少程序集引用。但是,當我真的構建的解決方案,錯誤消失。盡我所知,我的依賴關係已經設置,構建順序是正確的。什麼可能是錯的?許多Visual Studio錯誤列表中的類型錯誤 - 直到我編譯,然後他們都不見了

這並不妨礙我的建設和部署,但這是一個主要的麻煩。當我實際引入新的錯誤時(直到我編譯完成),很難分辨出來。因此,它侵蝕了讓錯誤窗口進行靜態分析的有用性。

實施例中,50個錯誤之一是這樣的: 「?類型命名空間名稱的PersonManager'的不存在於命名空間‘吉丁’(是否缺少的組件參考存在」在提到這行代碼: Gideon.PersonManager PM =新Gideon.PersonManager()

的PersonManager是強調在這兩個地方,當我右鍵單擊類型,選擇「查找所有引用」我得到一個警告框,上面寫着「無法瀏覽到的PersonManager 「

但是,引用是肯定存在的,因爲當我構建時,它的工作原理如下:

另一個細節是有C#和VB.net代碼的混合,但我認爲這不應該有所作爲。

回答

1

嗯,是的,IntelliSense分析器不是C#編譯器的精確副本。它有一個非常不同的工作要做,它需要做一些有意義的事情,而代碼是完全破碎,因爲你正在編輯它。艱難的任務,他們做了很大的工作。但作爲一種副作用,它可能無法解析真正合法的事物。這是非常罕見的,但不是聞所未聞的,自己看過幾次。

除非您至少給我們一些關於您所看到的錯誤類型的信息,以及生成它們的代碼片段,否則這不會帶來任何具體問題。你沒有這樣做,我只能建議你選擇另一個窗口,這樣你就不必看着它們了。

+0

這不僅僅是「我在輸入」的意義上說,它顯示了錯誤,然後我用有效的語法完成了語句。我的意思是在我輸入完成後,我有一些*將*編譯沒有錯誤 - 它列出了〜50個錯誤。我可以給你看一個樣本,我可以在明天編輯它,但是有幾個不同文件有太多的錯誤。其中絕大多數是它無法找到類型,暗示一個程序集可能會丟失(如我所述)。 – pc1oad1etter 2010-09-29 02:11:42

+0

我用一個明確的例子更新了這個問題。 – pc1oad1etter 2010-09-29 14:46:40

+1

智能感知以某種方式使用與編譯器不同的程序集。它是在同一個解決方案嗎?在您的機器上追查舊的DLL副本。 – 2010-09-29 14:50:25

0

我有同樣的問題。我的解決方案中有一個項目導致了問題 - 我從解決方案中刪除了項目,然後在主解決方案中添加了對該項目的引用,並且錯誤消失了。奇怪的是,它只發生在一臺機器上。在另一臺機器上打開解決方案是好的...