VS2003-2005 移植

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

VS2003 WEB应用程序向VS2005的移植

译自: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文件,此文件是基于文本的,里面记录着详细的关于解决方案的内容。当你打开一个解决方案文件时,会类似以下的文本内容:

    Microsoft Visual Studio Solution File, Format Version 8.00
  
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortalVBVS", "http://localhost/PortalVBVS/PortalVBVS.vbproj", "{345F0E9A-24F3-451C-B8EE-6B3796797BC8}"
  
        ProjectSection(ProjectDependencies) = postProject
  
        EndProjectSection
  
EndProject
  
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1", "ClassLibrary1/ClassLibrary1.csproj", "{50CC4DB3-6AE3-4A01-A3C8-000DB914F9CF}"
  
        ProjectSection(ProjectDependencies) = postProject
  
        EndProjectSection
  
EndProject
  
Global
  
        GlobalSection(SolutionConfiguration) = preSolution
  
               Debug = Debug
  
               Release = Release
  
        EndGlobalSection
  
        GlobalSection(ProjectConfiguration) = postSolution
  
               {345F0E9A-24F3-451C-B8EE-6B3796797BC8}.Debug.ActiveCfg = Debug|.NET
  
               {345F0E9A-24F3-451C-B8EE-6B3796797BC8}.Debug.Build.0 = Debug|.NET
  
               {345F0E9A-24F3-451C-B8EE-6B3796797BC8}.Release.ActiveCfg = Release|.NET
  
               {345F0E9A-24F3-451C-B8EE-6B3796797BC8}.Release.Build.0 = Release|.NET
  
               {50CC4DB3-6AE3-4A01-A3C8-000DB914F9CF}.Debug.ActiveCfg = Debug|.NET
  
               {50CC4DB3-6AE3-4A01-A3C8-000DB914F9CF}.Debug.Build.0 = Debug|.NET
  
               {50CC4DB3-6AE3-4A01-A3C8-000DB914F9CF}.Release.ActiveCfg = Release|.NET
  
               {50CC4DB3-6AE3-4A01-A3C8-000DB914F9CF}.Release.Build.0 = Release|.NET
  
        EndGlobalSection
  
        GlobalSection(ExtensibilityGlobals) = postSolution
  
        EndGlobalSection
  
        GlobalSection(ExtensibilityAddIns) = postSolution
  
        EndGlobalSection
  
EndGlobal
  

  
    
  
手工对该文件进行修改,把http//URL定义更改为文件引用类型路径,如上所示就是把http://localhost/PortalVBVS/PortalVBVS.vbproj 改为PortalVBVS/PortalVBVS.vbproj 注意,这里是 “/” 不是 ”/”,因为这里是文件路径. 更改的结果如下:
  
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortalVBVS", "PortalVBVS/PortalVBVS.vbproj", "{345F0E9A-24F3-451C-B8EE-6B3796797BC8}"
  
        ProjectSection(ProjectDependencies) = postProject
  
        EndProjectSection
  
EndProject
  

 

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

  <VisualStudioProject>
  
    <VisualBasic
  
        ProjectType = "Web"
  
        ProductVersion = "7.10.3077"
  
        SchemaVersion = "2.0"
  
        ProjectGuid = "{345F0E9A-24F3-451C-B8EE-6B3796797BC8}"
  
>
  
    
  
WEB 更改为 LOCAL ,保存退出.
  
<VisualStudioProject>
  
    <VisualBasic
  
        ProjectType = "Local"
  
        ProductVersion = "7.10.3077"
  
        SchemaVersion = "2.0"
  
        ProjectGuid = "{345F0E9A-24F3-451C-B8EE-6B3796797BC8}"
  
    >
  

  
    
  

 

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):

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  
  <PropertyGroup>
  
    <ProjectType>Local</ProjectType>
  
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
  
    <ProductVersion>8.0.50727</ProductVersion>
  
    <SchemaVersion>2.0</SchemaVersion>
  
    <ProjectGuid>{22C5DF64-8114-41F3-92DF-DBC285835584}</ProjectGuid>
  
    <OutputType>Library</OutputType>
  
    <AppDesignerFolder>Properties</AppDesignerFolder>
  
    <RootNamespace>WebApplication10</RootNamespace>
  
    <AssemblyName>WebApplication10</AssemblyName>
  
  </PropertyGroup>
  

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

<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
  

这个值可以让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)  你还应当考虑在配置文件中加入下面的标签,这样可以避免在你的页面中看到不同的呈现结果。

<system.web>
  
  <xhtmlConformance mode="Legacy" />
  
</system.web>
  

  
    
  
STEP 9:编译,运行工程项目
    

  
    
  
现在你可以编译你的工程了。在这个阶段最容易发生的错误是新类名称的编译冲突。比如:现在的ASP.NET有内置的菜单和树控件(就像ProfileMemberShipRoleManagement APIs ,所以会看到一个‘类型不明确’的错误。(注:编译器会列出所有的错误详细信息)。如果这样,你应当更新你的控件引用名称,用全称来代替。比如:把TreeView 改为myProject.Mycontrol.TreeView
  

  
    
  

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

 

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

 

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

 

STEP 10PARTIAL类的转化

 

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

 

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

 

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

 

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

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



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

 

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

 

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

 
Microsoft Visual StudioVS2003-vs2005-vs08-vs12-vs2013-vs2015最新最全清理最近项目使用过的文件解决方法 VS2003-vs2005-vs08-vs12-vs2013-vs2015清理最近项目 清理项目清除方法 唯一最全的最新的清除VS最近使用的记录使用过的文件 使用的项目和解决方法 立即下载

相关推荐

vs2003移植vs2012需要注意的几个问题

项目要求把vs2003的老代码移植vs2012上,期间遇到一些问题,现主要把几个重点问题总结出来,以后遇到此问题,方便查询。

毕业生信息管理html,查看源码: graduated_magament.rar_毕业生信息管理系统.csproj - VerySource...

ProjectType="Local"ProductVersion="7.10.3077"SchemaVersion="2.0"ProjectGuid="{86787E3F-E38A-43BA-94BE-3526CC1FB41A}">ApplicationIcon="App.ico"AssemblyKeyContainerName=""AssemblyName="...

weixin_31688167的博客 264

Silverlight项目加载问题 无法读取项目文件“SL1201.csproj”。

错误提示:无法读取项目文件“SL1201.csproj”。 C:\Users\xiaoxiangfeizi\Desktop\slMessage\SL1201\SL1201.csproj(128,3): 未找到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.CSharp.tar

快乐人生 4448

手动取消vss源代码绑定

在做此操作前,记得先备份哦 1、在删除了解决方案目录、各个项目目录下的: mssccprj.scc、工程名.vssscc、vssver.scc、项目名.csproj.vspscc 2、再去每个项目文件项目名.csproj文件,我们可以在开头部分看到类似下面的代码:  ProjectType="Web"  ProductVersion="7.10.3077"  Sch

Jelly的专栏 1003

vs2003工程中如何去除Vss管理

有两种方法:1 如果你是从正在使用Vss的管理的工程中去除 ,只需:菜单“文件”--〉“源程序管理”--〉“源程序管理修改”执行“解除绑定”就行了2 如果您没用Vss管理,当你下载到一个有Vss管理的原程序时就需要手动删除了删除解决方案目录、各个项目目录下的:mssccprj.scc 、工程名.vssscc、vssver.scc 、项目名.csproj.vspscc再去每个项目

Jerry Studio 1451

VS2005web应用程序项目教程(7)Upgrading VS 2003 Web Projects to be VS 2005 Web Application Projects...

Upgrading VS 2003 Web Projects to be VS 2005 Web Application Projects The below tutorial helps explain how you can no...

weixin_30628801的博客 277

VS2003 WEB应用程序向VS2005移植

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

sou3713的专栏 940

VS2003-2005 移植(续)

http://www.microsoft.com/china/msdn/library/webservices/asp.net/webproject.mspx?mfr=true官方地址 http://lgp.cnblogs.com/archive/2006/03/14/349620.html个人BLOG(一)http://lgp.cnblogs.com/archive/2006/03/

kagar的专栏 1752

关于移植VS2003VS2005项目(续)

在上一篇文章中,我译的是Scouut的BLOG,由于水平有限有很多不足这处,和不准确的地方,还请指教。为了让你的项目移植工作更加顺利,请查看官方的译文,点此查看原文。 将 Web 项目从 Visual Studio .Net 2002/2003 转换到 Visual Studio 2005 的分步指南 发布日期: 12/30/2005 | 更新日期: 12/30/2005 ...

anluo4560的博客 213

[zt]在smartphone2003中使用net compact framework2

VS2005发布之后,开发智能设备的程序员在为net精简版2.0(Net Compact Framework2 以下简称ncf2)的新功能喝彩之余,很郁闷地发现ncf2不提供对smartphone2003系统的支持。其实目前smartphone2003的手机还没进入淘汰阶段,window mobile5的手机依然价位居高不下,尚未进入普通消费者的视线。使用ncf2进行 smartphone200

网摘 1079

vs2005中文字符问题

vs2005 fstream 不能打开中文路径名文件的问题!公司有一个项目从vs2003移植vs2005之后老是出现runtim erro经过排查最终定位在fstream 打开"含中文路径"的文件时候会出现fail的情况本来不相信vs2003过渡到2005会有这个问题,但是经过试验确证实了该问题我新建立一个exe来测试该问题 1#include "stdafx.h" 2#includ

pengzhixi的专栏 783

VS2005上使用推式(embedded report)水晶报表以及打包部署的方法

作者 :Suny Wong (@PCPartner Limited) 最近,我将我的VS2003的程序升级到VS2005。上网稳左好多资料,终于在博客园里面找到一篇叫“VS2003 WEB应用程序向VS2005移植“的文章,解决了基本的升级问题。 接下来遇到的是水晶报表的移植问题,在网上稳左好多关于水晶报表在VS2005的使用的文章,都是讲在VS2005中不再支持“embedded r...

weixin_30457065的博客 164

Visual Studio 2005 Web Application Projects安装使用

   下载的锐傲博客使用的虽然是VS2005,但是是从VS2003移植过来的,项目中使用的是Website,在2005中不能加载。要使用Visual Studio 2005 Web Application Projects来转换,但是它现在只支持英文,中文版的VS现在还不能支持,Scott说在今年夏天会有针对其他语言的Patch发布。(dudu提供)关于Visual Studio 2005 W

cychai的专栏 1600

Delphi2005初步感受

今天得到Delphi2005的演示版,安装后测试了以下C#Builder。感觉是兼容了Delphi7版本以前的很多组件,很方便移植。并且在操作风格上还是保持了Borland一贯的“拖拉”风格。并且运行的速度感觉比VS的C#编译出来的要快。(只是感觉,以后会测试以下)。现在唯一的缺陷是前一段事件在VS2003投入了时间,现在发现没有必要。

cd_szzhang的专栏 1301

使用visual c++ 2005编译64位可执行文件

最近需要将一个32位的程序移植到64位上,由于原来是使用vs2003写的,vs2003本身并不支持编译64位系统上,只能升级到vs2005以上版本。个人还是比较喜欢vs2005,对c++来说,vs2005的功能基本上已经够用了。 基本步骤如下:   接下来只要重新编译即可,当然代码可能需要修改,例如OnTimer(UINT nIDEvent)需要改成OnTimer(UINT_PT...

weixin_34208185的博客 111
上一篇: VS2003-2005 移植(续)
下一篇: 移植遇到的问题
kagar
博客等级 码龄21年 4粉丝 3原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值