将博客园程序从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 阅读(13744) 评论(41)  编辑 收藏

  回复  引用  查看    
#1楼 2006-02-18 16:26 | 雁儿飞飞      
看来俺还是暂时先用vs.net2003
爱不释手也
  回复  引用    
#2楼 2006-02-18 16:42 | haoya [未注册用户]
博客园开放的那个beta2太久了,都要在2005上开发了,设么发布最新的博客园代码啊?再不发布都不敢用博客园的程序了:(
  回复  引用  查看    
#3楼 [楼主]2006-02-18 17:05 | dudu      
@haoya
抱歉!我也有难住,一直忙于博客园的发展,实在没时间去维护一个开源版本的博客园程序,而且感觉目前的程序还有很多地方需要改进,还不合适对外发布。我尽可能在时间允许的情况下考虑发布一个新版本。
  回复  引用  查看    
#4楼 2006-02-18 18:10 | 高海东      
强烈要求发布新的博客园代码
  回复  引用  查看    
#5楼 2006-02-18 20:22 | 阿不      
DUDU博客园的代码原来就是从头开发的还是就使用开源代码。也希望能够小小的看一眼啊。
  回复  引用  查看    
#6楼 2006-02-18 22:10 | U2U      
太好了,不需要为升级代码而苦恼了
  回复  引用  查看    
#7楼 2006-02-18 22:31 | [天道酬勤]      
不错,为我们对项目进行升级提供了一些帮助。
  回复  引用  查看    
#8楼 [楼主]2006-02-18 22:32 | dudu      
@阿不
2004年建立博客园的时候用的是.Text,然后就基于那个版本的.Text进行开发。
  回复  引用  查看    
#9楼 2006-02-19 12:42 | Sheva      
我觉得博客园的代码既然是基于.Text,那就应该把Scott Watermasysk的logo放在上面,不然人家会不高兴的:-)

Sheva
  回复  引用  查看    
#10楼 [楼主]2006-02-19 18:07 | dudu      
@Sheva
Scott已经放弃了.Text的开发。
  回复  引用  查看    
#11楼 2006-02-20 12:42 | liuyuer      
我按照上面说的步骤来,但是遇到了问题,在升级后,打开sln的时候,vs说“已经在解决方案中打开了具有该名称的项目”,结果导致sln中的一个project变灰,不能加载。

不知道这个升级的方法是否能够通用?我应该怎么办呢?
  回复  引用  查看    
#12楼 [楼主]2006-02-20 14:02 | dudu      
@liuyuer
你检查一下哪个地方设置有问题,我已经已经成功进行了升级。
  回复  引用  查看    
#13楼 2006-02-20 14:54 | liuyuer      
我在前边的步骤都是很顺利的,升级也没有任何错误或警告,但是步骤6,中我并没有删除resx,
步骤7之后,再打开vs2005就出现了我说的问题,试验了一个上网,还是失败~

就我一个人遇到了这个问题?

  回复  引用  查看    
#14楼 2006-02-21 14:56 | 刘誉儿      
看来这个问题只有我遇到了,难道是我的配置问题?查了2天也没找到问题在哪
  回复  引用    
#15楼 2006-03-21 10:16 | able [未注册用户]
公司的项目好几个Web项目,ProjectType = "Local"都这样修改吗?

<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

这两个guid来源于什么?

  回复  引用  查看    
#16楼 [楼主]2006-03-21 10:43 | dudu      
是的。
不清楚。

  回复  引用    
#17楼 2006-04-13 22:40 | 阿杜 [未注册用户]
为什么我在安装Microsoft Visual Studio 2005 – Update to Support Web Application Projects
这个升级程序里,会提示不能安装,dudu帮帮我吧
  回复  引用  查看    
#18楼 [楼主]2006-04-13 22:44 | dudu      
@阿杜
我不知道什么原因。
  回复  引用    
#19楼 2006-04-13 22:52 | 闃挎潨 [未注册用户]
谢谢 dudu的迅速回复,不知道这个升级补丁的安装不上是不是和我的VS2005的版本有关系?你的VS2005是什么版本啊
  回复  引用  查看    
#20楼 [楼主]2006-04-13 22:53 | dudu      
英文专业版。
  回复  引用    
#21楼 2006-04-13 22:55 | 闂冩寧娼?Url= [未注册用户]
@dudu
我的这个是中文版的,能给我这个版本的下载地址吗?我的QQ是:31469649,非常感谢
  回复  引用  查看    
#22楼 [楼主]2006-04-14 11:02 | dudu      
我是从MSDN下载的。
  回复  引用    
#23楼 2006-04-17 16:34 | angin [未注册用户]
为什么我普通的项目能转成功,web的不行呢,总是说不支持这种类型,郁闷啊,我把ProjectType = "Local"改成:<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>项目就不能加载了,是不是要把共享目录去掉啊?

  回复  引用  查看    
#24楼 2006-04-18 10:51 | 老牦牛      
为什么中文版安装不上去补丁呢,有没有解决办法?实在感谢!
  回复  引用    
#25楼 2006-04-18 12:26 | angin [未注册用户]
我把ProjectType = "Local"改成:<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>,再重新打开解决方案文件总是会报错:A project with that name is already opened in the solution,我的系统是windows xp service park 2
有什么办法吗?谢谢
  回复  引用  查看    
#26楼 2006-04-22 18:02 | 随风流月      
请问一下,VS2003的IDE与VS2005共存,会出现问题吗?
  回复  引用  查看    
#27楼 2006-04-22 19:38 | 随风流月      
好……共存成功。就是内存耗大了点。
  回复  引用  查看    
#28楼 2006-05-08 15:49 | Jwin      
我把ProjectType = "Local"改成:<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>,再重新打开解决方案文件总是会报错:The project type is not support by this installation.

是什么原因呢?

  回复  引用  查看    
#29楼 [楼主]2006-05-08 16:12 | dudu      
@Jwin
你要安装Visual Studio 2005 Web Application Projects,下载地址:http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx ,目前只支持英文版VS 2005。
  回复  引用    
#30楼 2006-05-30 11:28 | 奔放1 [未注册用户]
Dudu:

对于在.net1.1中用到的第三方控件,这样直接升级后,可以吗?
比如 Freetextbox控件,Treeview控件。

你以前有个贴好像也提到过。

smileit@gmail.com
  回复  引用  查看    
#31楼 [楼主]2006-05-30 11:35 | dudu      
@奔放1
通过测试才能知道,Freetextbox要升级到支持.NET 2.0版本的。
  回复  引用    
#32楼 2006-05-30 13:00 | 奔放1 [未注册用户]
@dudu

谢谢你回复得这么快。 我试过,升级后的错误都是有TreeView引起的。可是2.0后,TreeVeiw已经集成在System.Web.UI.WebControls里边,而1.1里头是由微软独立发布的组件:Microsoft.Web.UI.WebControls。 我看了一下,两者区别还是挺大的。不知有没有支持2.0的Microsoft.Web.UI.WebControls。
  回复  引用    
#33楼 2006-09-04 11:54 | liu [匿名] [未注册用户]
http://msdn.microsoft.com/asp.net/reference/infrastructure/wap/default.aspx 从这里下载的补丁安装不了呀,问题太多了,

7、将升级后的Web项目转变为Visual Studio 2005 Web Application Projects:
打开.csproj文件,将ProjectType = "Local"替换为:<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>


升级后就没有.csproj文件呀
  回复  引用    
#34楼 2006-09-04 11:58 | liu [匿名] [未注册用户]
将Web项目的服务器设置为IIS,默认用的是内建的VS Web Server 这怎样设置呀,帮助一下呀!!
  回复  引用    
#35楼 2006-09-04 12:06 | liu [匿名] [未注册用户]
迁移是个错误码呀,总是有错误
  回复  引用    
#36楼 2006-09-25 10:08 | 风行[匿名] [未注册用户]
我是新手,请教如何使用Visual Studio 2005编译程序?
  回复  引用    
#37楼 2006-11-01 10:35 | bolan [未注册用户]
我按照上面说的步骤来,但是也遇到了问题,在升级后,提示:
web project component not installed. unable to convert project:

E:\CNBlogsDottext10Beta2\CNBlogsDottext\DottextWeb\DottextWeb.csproj

路径是肯定没错的。
  回复  引用  查看    
#38楼 [楼主]2006-11-01 13:57 | dudu      
@bolan
如果DottextWeb虚拟目录建立了通配符映射,取消映射。
如果不是这个原因,那我也帮不上忙。
  回复  引用  查看    
#39楼 2007-05-12 10:11 | s3      
dudu,为什么不把你升级成功的放出来大家用呢?

我升级两天了,总提示出错。
谢谢!~
  回复  引用    
#40楼 2007-05-23 16:33 | 王 [未注册用户]
怎么样用VS03打开VS05的项目啊,请高人指点一下

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-03-24 17:10 编辑过
成果网帮您增加网站收入


相关链接: