我使用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出现了。
新闻热点
疑难解答