我使用asp.net已經3年了,剛開始是使用手動編寫,后來使用 vs2003,又從 .net framework 1.0 升級至 1.1 ,一直都沒有問題。
這段時間,由于要開發手機應用,準備從 vs2003 向 vs2005 過渡。在沒有看過兩者有什么區別前,我就嘗試將原來的 vs2003的項目轉換成vs2005的項目。轉換結束后,出現了一大堆的錯誤,而且很多文件都導不進vs2005的項目中。經仔細研究后發現,我的程序.aspx 文件中引用了web控件,在.cs文件中申明為 public ,但他要求是 protected。如:
我申明為: public label ctlmsg; (申明為 public 是個不好的習慣)
正確的應該是: protected label ctlmsg;
所以在轉換項目前,要先把所有申明為 public 的控件修改為 protected ,再轉換,否則這個文件就無法導入到項目中。
當我把所有申明為 public 的控件修改為 protected 后,轉換成功了。我在vs2003中看了一下項目,所有文件都轉換過來了。
本以為可以正常使用了,我正高興地去編譯程序,又發現無法編譯通過,出了很多錯誤。
錯誤1:validation (internet explorer 6): .....................
說明:網頁的html代碼不符合規范,如: <table>[color=#ff0000]<form><tr></tr></form></table>
解決: 菜單 tools => options => text editor => html => validation 取消 show errors
錯誤2:error 1 missing partial modifier on declaration of type 'index'; another partial declaration of this type exists d:/root/www.5xsoft.com/index.aspx.cs 12 14 d:/root/www.5xsoft.com/
說明:從網頁中繼承出來的類的要加上 partial 申明
如 public class index : system.web.ui.page
解決:加上 partial 如 public partial class index : system.web.ui.page
錯誤3:error 1 the type 'zsweb.article' already contains a definition for 'ctltitle' d:/root/www.5xsoft.com/article.aspx.cs 20 25 http://localhost/www.5xsoft.com/
說明:vs2003中,使用web控件要在.cs中申明后才能使用,但在 vs2005中默認不能申明。
解決:刪除.cs文件中的 web 控件聲明。如刪除 protected label ctltitle;
小結:其實這里,我繞了一個圈,在轉換項目前,直接把 web 控件聲明刪除掉,就不會有錯誤3出現了。
新聞熱點
疑難解答