程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> asp.net教程:編譯錯誤同時存在於不同dll中

asp.net教程:編譯錯誤同時存在於不同dll中

編輯:關於.NET
ASP.Net 編譯錯誤類型“同時存在於”不同的dll中.

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

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、我就是遇見得這種情況:控件得名字和引用控件得頁面取了一模一樣得名字,雖然在編譯得時候沒有錯誤,但是發布得時候會提示。

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

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的開發團隊能修正此問題,並在日後減少類似的疏失。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved