将博客园程序从Visual Studio 2003迁移到Visual Studio 2005的尝试

     昨天,我尝试将博客园的程序从Visual Studio 2003开发环境迁移到Visual Studio 2005开发环境。之前,我也进行过这样的尝试。我用Visual Studio 2005升级向导进行升级,升级之后,在Visual Studio 2005中进行编译,实在有太多错误,我处理了多个处理之后,实现在没耐心去处理这么多错误,令人恼火的是Visual Studio 2005会将Web文件下的所有文件都包含在项目中进行编译,而Visual Studio 2003只编译包含在项目中的文件,这样如果有些文件不想参与编译,直接从中项目排除就行了。比如:有些代码未写好的文件,临时备份的文件等等。而Visual Studio 2005却很强权,不行,在他管理的Web项目下的所有文件必须接受他的管理,不能影响编译,如果不想被他管理,只能把文件删除或者从Web项目目录下移走,真是个糟糕的设计,有些文件或者文件夹根本不需要他管理,比如:图片文件、临时文件、第三个控件所需的文件夹,这样做还会影响加载Web项目的速度,加载了很多不必要的文件!由于这个原因,VS2003Web项目升级至VS2005之后会带来更多附加的错误。这就是著名的VS 2005 Web Site project model! 却让我当时放弃升级的念头,难道要在VS 2005 Web Site project model下重新开发,难道微软希望大家这样做?
      庆幸的是,微软意识到了这个问题,准备推出VS 2005 Web Application Project,目前已经推出 VS 2005 Web Application Project Preview,那什么是 VS 2005 Web Application Project?简单地说就是让VS 2005按V2003的方式处理Web项目,比如:可以在项目中包含、排除文件,将Web项目编译成一个assembly。新技术让人激动人心,但旧技术中很多有价值的东西也不能轻视。有时从头再来会带来更大的收获、更多的提高,但大多数情况下从头再来意味着痛若的选择、更高的成本,这点对于软件行业尤其重要。微软操作系统正由于非常注重向后兼容性而取得了如此大的成功。
      VS 2005 Web Application Project正式推出后(可能在VS 2005 SP1中推出),当你用VS 2005打开VS2003的Web项目,升级向导会提示你是使用VS 2005 Web Site Project model还是 VS 2005 Web Application Project Model进行升级,如果选择VS 2005 Web Application Project Model, 升级向导会自动帮你升级,升级后你可以像在VS 2003中一样处理Web项目,这样的升级意味着升级后更少的代码修改。
      目前我们可以通过VS 2005 Web Application Project Preview手动将VS 2003 Web项目升级到VS 2005 Web Application Project。Scott Guthrie专门写了一篇文章告诉你如何进行这样的升级:Upgrading VS 2003 Web Projects to be VS 2005 Web Application Projects。我就是按照这篇文章成功完成了升级,并且升级后编译成功。
 
升级过程简要描述:
 1、下载并安装VS 2005 Web Application Project Preview:下载地址:http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx
 2、 备份要升级的项目。
 3、在VS 2003下编译要升级的项目,确认无编译错误。
 4、修改.sln及Web项目文件夹中的.csproj,将Web项目改为类库项目:
       用文本编辑器打开.sln文件,将Web项目的URL地址改为实际的路径,比如:http://localhost/DottextWeb/DottextWeb.csproj改为:DottextWeb\DottextWeb.csproj。
       用文本编辑器打开Web项目文件夹中的.csproj,将ProjectType = "Web"改为ProjectType = "Local"。
  5、重新用VS 2003打开并编译该项目,确认能成功编译。
  6、用VS 2005打开要升级的项目,并通过升级向导进行升级。我在升级前删除的所有的资源文件(*.resx)。
  7、将升级后的Web项目转变为Visual Studio 2005 Web Application Projects:
  打开.csproj文件,将ProjectType = "Local"替换为:<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
  8、将Web项目的服务器设置为IIS,默认用的是内建的VS Web Server。
posted @ 2006-02-18 16:07 dudu 阅读(...) 评论(...) 编辑 收藏