我使用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><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.html.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出现了。