VS2003 WEB应用程序向VS2005的移植

作者: Robin 分类: Asp.net 发布时间: 2008-11-11 17:55

译自:http://webproject.scottgu.com/VisualBasic/Migration/Migration.aspx

作者:Scott Guthrie.

 

VS2003 WEB应用程序向VS2005的移植

 

下面的向导将向你展示,如何快速简便地把VS2003 网络应用程序移植到VS2005平台。请详细阅读第一至第六条指引,目的是让你了解VS2005的网络应用程序的运行模式,因为这和以前BEAT1(和最终版的VS2005存在一定的差异,某些功能在BEAT版里不支持) VS2003的运行模式存在着差异。

 

利用VS2005WEB APPLICATION PROJECT PREVIEW 时行VS2003的程序移植

 

有很多种不同的移植方案,一种默认的移植方式是通过网站应用程序模式。在此,我们利用的是一种非常简单的移植方案,和默认方式的原理一样,你不必要去对程序结构做任何修改。

唯一要做的是忽略API引用的警告。

 

在使用VS2005最终版时,当你打开VS2003的工程项目时,它会提示你,是否对当前打开的项目进行转换。

 

自动移植向导在第一版中并不支持,但是根据下面的指引,你可达到同样的效果。一般来说,你可以在15-20以内完成前八个步骤。(在这里写的太详细了,其实每步可能只要1,2分钟就可完成)。

 

请仔细按照步骤进行操作,如果在移植当中遇到问题(成功最好),那么请来信,我会在下一次的更新中回答你的疑问。

 

STEP 0:安装VS2005 网络应用程序工程项目预揽

 

如果你安装的是VS2005 最终版,那么,你就不必要再进行安装了,因了这项功能已经内置在VS2005里面了,如果你用的VS2005没有此项功能,你可以点击下载并安装,在使用前请仔细阅读说明。

 

STEP 1:备份你要转换的VS2003项目文件

 

在尝试以下步骤之前,请确认你已经对你要转换的项目就行了完整的备份,这样以备不测。因为在转换的过程当中,我们很难保证不出问题,一但出了问题,我们可以利用这个备份进行回转。

 

STEP 2:打开你的VS2003项目,确保项目运行正常

 

在进行转换之前,还要对你的项目做最后的编译和测试,保证没有错误之后,才可下面的步骤。这样做是为了在以后的步骤执行当中减少不必要麻烦(特别是,如果因为最后一次的文件移动所导致的问题)。

 

STEP 3:修改.sln .vbproj 项目文件,使之成为类库文件

 

 如果你使用的是VS2005最终版,那么就不必要做如下更换,因为VS2005会自动帮你完成以下工作。如果是VS2005第一版,请仔细阅读并认真执行。

 

1)        关闭VS2003解决方案

2)        用记事本打开.sln文件,此文件是基于文本的,里面记录着详细的关于解决方案的内容。当你打开一个解决方案文件时,会类似以下的文本内容:

 

3)        利用记事本对工程文件进行更改

 

4)        最后一步,也是关键的一步,删除与工程相关的.webinfo文件.如果项目名称是LGP.vbproj ,那么就要把LGP.vbproj.webinfo文件删除.

 

STEP 4 重新在VS2003里打开工程,检查项目是否成功打开和编译是否正确

 

一但你完成了以上几个步骤,那么你的Web工程在VS2003中会当作类库看待。他们的意义相同,但是与FrontPage 服务器扩展的连接将不存在。

 

VS2003中重新打开,检测是否编译完好,注意你必须直接打开解决方案文件,你已经不能再用服务器扩展形式《HTTP//》打开了。因为你刚才把工程文件转换成了类库文件了。确保你的工程都会在解决方案浏览器窗口打开,然后选择,BuildàBuild Solution 并保证完全编译正确。这很容易完成,最容易出错是的是引用项目的路径问题。或者是.webinfo文件没有删除。如果出现这种错误,关掉VS,排除错误,再进行打开,编译。

 

SETP 5:用VS2005打开并执行移植

 

关闭当前打开的VS2003,打开VS2005。选择 文件à打开文件,选择你要进行转换的工程解决方案。VS2005会自动运行项目移植向导。



根据向导进行移植,
VS2005会把工程文件转换为MSBuild类型的文件(VS2005中工程文件专用的格式)。在此过程中会自动产生一个XML格式的转换概要,一般来说,这个文件保存在你当前解决方案的同一目录下。如果在以后的编译过程过程出现了错误,你可以通过查看此文件来追踪错误。

 

STEP 6:转换你的工程项目

 

现在,你的工程已经转换成了VS2005 MSBuild格式的工程文件,下一步就是要添加一个原数据值,让VS2005把它们当成VS2005工程文件来对待。可以这样做:

1)  首先完全保存你打开的文件和已完成转换的文件

2)  关闭解决方案

3)  用记事本打开工程文件进行再次编辑,这次你的工程文件会是如下格式(MSBUILD):

删除<ProjectType>行,并用下列值代替:

这个值可以让VS2005知道,不能把它当作普通的类库工程,而是WEB应用程序。

4)  保存并关闭WEB工程文件,重新打开解决方案文件。

 

STEP 7:利用IIS安装WEB应用程序

 

一般情况下,你的Web工程会运行在VS内置的Web服务器(aka Cassini.当然,你很想充分利用它的优越性,最简单的方法是在IIS里运行。你可以这样做:

 

1)  在解决方案里右键Web应用程序的根结点,选择属性页,然后打开Web标签,选择“Use IIS Web Server”项,输入 Http://工程项目路径

最后,关闭属性页,保存项目文件。

2)  在解决方案中右键,选择作为启动项目。这样在你按F5(或Ctrl-F5)启动解决方案时,会把这个项目作为启动项目。

3)  运行微软的IIS管理工具,打开你刚刚输入的工程路径属性页,选择 ASP.NET标签,确保应用程序使用的是ASP.NET2.0配置(默认情况下是1.1)。


如果你用的是
Window server2003IIS6,还应当注意不要把它放在ASP.NET1.1的应用程序池中,否则会出现在同一个程序池里加载两个不同版本的CLR错误。如果必要,你要新建一个程序池来防止冲突。

 

STEP 8: 处理XHTML的适应性问题

 

在默认情况下,VS2005会自动生成并检测XHTML标记语言,这可以帮你建立通用的网站应用程序,并且减少你的网页在呈现时的误错。

 

不妙的是,VS2003不会自动生成XHTML标记,所以你应当注意在VS2003应用程序里的XHTML配置部分。可以这样来配置:

1)  切换当前配置,把HTML检验变成IE6检验(这在VS2003中是默认的)。选择工具à选项菜单项,在弹出的对话框中,选择文本框选项,把检验目标换成IE6,并且取消“显示错误”项。

2)  你还应当考虑在配置文件中加入下面的标签,这样可以避免在你的页面中看到不同的呈现结果。

另外一个问题是关于VB的,Global将被视为关键字在VB2005中,这意味着你不能再用它来命名类。在VS2003中,Global.asax文件默认是全局类。在升级的过程中,所有的引用都会被自动的重命名为全局的。如果在你的页面类或是控件类中,引用了全局类,那么你要手工的加上“Add”字符在你引用的类名前。

 

你还可能遇到其它的关于API的变更问题,请访问这个页面,可以帮你了解更详细的情况。

 

一旦你的编译工作正确无误,那么你就可以在IIS中运行调试了。

 

STEP 10PARTIAL类的转化

 

当你完成上述步骤时,你的内联类和其它类将都不会被修改。它们将像在VS2003里一样。这样可以让移植变得简单。你也可以随意选择你的代码格式,这样需要你手工的去更新你的代码后置类。

 

当然,你也可以利用在VS2005中的新类模式Partial。这样让你的代码看着更简捷,更有逻辑性。这样就把当前的代码后置文件变换成了两个分别的文件:一个是代码和事件处理,另一个是为页面中申明的控件。想了解详细的新类模式,请查看此页

 

根据下面的步骤转换你的当前类

 

1)  在确认变换前,一定要工程编译没有任何错误

2)  在你的项目浏览器点右键,选择“更新WEB应用程序”,这样会让你的.aspx页面和.ascx控件页的后置代码自动更新为Partial模式,并生成相应的 .Designer.vb代码。


接下来,你要重新编译项目,这样不会出现错误(我所遇到的错误情况大多是,你在代码后置类里修改了控件申明,在更新向导中会错误地处理它们)。如果你有这样的错误,根据错误信息,查找相关的页面,查看代码,更改错误。

 

注意:还有一种更高级的选择,就是一个页面一个页面的更新。只需要要选择你想更新的页面,右键à选择“更新应用程序”项。这样你可以更细致地观察更新过程。

 

当你新增页面时,它会自动默认选用Partial代码后置模板。

用VS2005新建一个Web应用程序

然后来记事本查看项目文件

得到

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签云