2015/12/9

怪異的「找不到型別或命名空間名稱」錯誤

這是一個不容易理解的錯誤(但是很容易解決)。直到現在, 我還是不了解為什麼 VS 會出現這種怪異的「找不到型別或命名空間名稱」錯誤訊息

請看以下的錯誤畫面擷圖。我想, 即使你是一個 Visual Studio 老手, 恐怕也很難一眼看出這個問題出在哪裡。

為什麼 VS 會在一行 using 敍述中說你遺漏了 using? 我可以確定這個組件已經加入參考; 否則這個 StockManager 命名空間的下面不會是綠色波紋線, 而應該是紅色的。

為此, 我花了很多功夫去研究 VS 的組件參考方式, 但是一無所獲。而且, 如果你上網搜尋「找不到型別或命名空間名稱」或者 "Type or namespace could not be found", 你應該查不到任何可能有助於解決這個問題的資訊。於是我恐慌了; 我很害怕又落入 Visual Studio 某個隱密、不為人知的 bug。雖然距離我上一次遇到這種狀況也已經是十幾年前的事了。

當我試過無數方法, 正打算將整個方案廢棄重寫之際, 我突然注意到錯誤清單裡有五項警告。我通常會把專案寫得差不多之後再回頭去修改 VS 幫我找出來的警告事項, 所以我平常都把警告訊息關閉。不過, 這時我想, 不妨把它打開來看看, 或許能觸發什麼靈感。

很幸運地, 如同在上圖中顯示的, 發生這個「找不到型別或命名空間名稱」錯誤的原因, 竟然就在寫在警告訊息中! (雖然我不了解為何這種訊息算是警告而非錯誤)

雖然我很迷惑, 因為我實在不記得我什麼時候把 StockManager 這個組件編譯成 .Net Framework 4.5.2 了 (我的所有組件都使用 4.5.1)。但是當我把它重新編譯成 4.5.1 之後, 所有問題都迎刃而解了。

沒有留言:

張貼留言