自己机器上安装了vs2008和vs2005,有个web项目一直都是用2005开发的,在自己的机器上运行没有问题,但是部署到另外一台只装有.net2.0的机器上时,查看所有页面,发现基本都报
CS0030: 无法将类型“ASP.login_aspx”转换为“System.Web.UI.WebControls.Login” 错误。刚开始还以为是路径或者.net版本问题,然后加装.net3.5,发现问题竟然解决了,但是后来仔细检查项目是否引用了.net3.5的程序集,才发现vs2005中引用不了.net3.5的程序集。也没法调用.net3.5的编译器来编译项目,于是又仔细检查了编译输出。发现并没有引用过System.Web.UI.WebControls.Login(应该是.net2.0中的Login控件)这么个东西,怎么会有这么个转换了,于是仔细查看Login.aspx页面,发现它并没有被自定义的命名空间包装,觉得问题应该出在这了,于是用自己定义的命名空间包装一下,然后编译再部署到只有.net2.0的机器上时,已经没有错误了。
总结如下:
1.vs2005只能用.net2.0来编译,而2008可以选择。
2..net3.0可能修正了这个问题。
3.因为大部门页面都要经过Login.aspx,所以都会报错。
以后大家在vs2005添加Login.aspx页面时要注意了。。。。。。。