也談Asp.Net編譯錯誤CS0433 類型XXX同時存在於…

來源:互聯網
上載者:User

  一直好好的Asp.Net項目,晚上突然出現這個問題,於是搜尋了一下,看到有人給出了比較好的解決辦法:

http://www.cnblogs.com/chinhr/archive/2008/08/08/1263508.html

出現這種錯誤大概有三種情況:

1、ASPX頁面,一個*.ASPX,對應著一個*.cs檔案,兩者其實是一個檔案,通過兩者實現代碼分離,每個*.aspx頁面都引用著自身的CS檔案:如果兩個頁面引用了相同得.CS檔案,在發布得時候也會出現這種錯誤。

2、估計是在Bin裡面還有一個老版本的DLL,而新版的DLL名字換掉了,新的覆蓋不掉老的,並存在BIN裡時,有可能會發生這種情況. 解決方案:把BIN裡的手動刪掉,C:\WINDOWS\Microsoft.NET\Framework\版本號碼\Temporary   ASP.NET   Files的臨時檔案裡,把相應的目錄都刪掉,然後重新編譯運行就OK.記著bin目錄下組件一定要手動刪除

3、我就是遇見得這種情況:控制項得名字和引用控制項得頁面取了一模一樣得名字,雖然在編譯得時候沒有錯誤,但是發布得時候會提示。

以及一個補充說明:

如果你的使用者控制項名字不一樣,但是Control指令中的ClassName屬性的值一樣也會出現上面的錯誤

我的項目一下午都在修繕、調試,所以我很清楚我的項目裡沒有重複類引用。

並且我這個狀況很離奇:它一直報關於一個使用者控制項的同時存在錯誤,然而某次重試時卻編譯成功,而後沒轉幾個頁面,又報另一個使用者控制項同時存在錯誤,在這之後又重新無法編譯成功,繼續報最初那個使用者控制項的錯誤。

我覺得這個報錯純屬胡來,所以我認定是Visual Studio內部錯誤導致,所以嘗試了清理緩衝、清理Bin、清理Obj、VS裡的清理、重編譯命令,乃至重新啟動電腦,全都不行,前後折騰了得小一個鐘頭,已是怒不可遏。

然後我決定找出下午備份的版本來測試,一次成功,於是就把錯誤鎖定在兩個版本間的差異上了。

我想起我曾在此期間通過“添加現有項”從其他網站項目中添加了一個ashx,於是仔細檢查此檔案,發現其cs檔案中的命名空間已改為我的項目預設命名空間,但是其ashx檔案中卻沒有更改,還保留著原來項目的命名空間(ashx檔案中只有一個頭部聲明,所以在VS裡雙擊ashx檔案是直接開啟其cs檔案,導致容易忽略這個檔案)。

將其修正後,編譯錯誤CS0433終於不再出現了。

這雖然是個人的小失誤造成的問題,但是Asp.Net的錯誤提示卻跟瘋狗似的亂咬一通,嚴重誤導、幹擾開發人員解決問題,希望Asp.Net的Team Dev能修正此問題,並在日後減少類似的疏失。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.