将 Web 项目从 Visual Studio .NET 2002/2003 转换为 Visual Studio 2005 的分步指南

 

Web 平台和工具团队
Microsoft Corporation

2006 年 7 月

摘要:指导完成在 Visual Studio 2005 中将现有 Visual Studio .NET 2003 Web 项目转换为 Web 应用程序项目的过程, (7 个打印页)

将 Visual Studio .NET 2003 Web 项目迁移到 Web 应用程序项目
   步骤 1:安装 Visual Studio 2005 Web 应用程序项目预览版
   步骤 2:备份 Visual Studio .NET 2003 项目
   步骤 3:打开并验证 Visual Studio .NET 2003 Web 项目
   步骤 4:将解决方案迁移到 Visual Studio 2005
   步骤 5:在 Visual Studio 2005 中验证
   步骤 6:将秘密Code-Behind类到分部类
   步骤 7:检查并解决 XHTML 合规性问题
Web 应用程序项目的未来

将 Visual Studio .NET 2003 Web 项目迁移到 Web 应用程序项目

本文将指导你完成在 Visual Studio 2005 中将现有 Visual Studio .NET 2003 Web 项目转换为 Web 应用程序项目的过程。 Web 应用程序项目模型使用与 Visual Studio .NET 2003 中的 Web 项目相同的概念方法,包括包含和排除文件的项目文件、编译到单个程序集等。 通常,Web 应用程序项目不需要在转换后进行任何体系结构更改。

本文假设你使用的是 C#。 使用 Visual Basic 的步骤非常相似,但文件名和某些代码会有所不同。

步骤 1:安装 Visual Studio 2005 Web 应用程序项目预览版

请确保已按照安装 Web 应用程序项目中的步骤在 Visual Studio 2005 中 安装 Web 应用程序项目

步骤 2:备份 Visual Studio .NET 2003 项目

在尝试任何迁移之前,请务必保存 Visual Studio .NET 2003 Web 项目和解决方案的备份。 以下步骤已使用 Web 应用程序项目的预览版本进行测试。 但是,可能仍然存在问题,可能需要还原 Visual Studio .NET 2003 解决方案。

步骤 3:打开并验证 Visual Studio .NET 2003 Web 项目

在迁移项目之前,请打开现有的 Visual Studio .NET 2003 解决方案,对其进行编译,然后运行它。 在迁移之前花几分钟时间验证一切是否正常工作,以后可能会省去麻烦,尤其是在错误原因是最后一分钟的目录更改或类似情况时。

步骤 4:将解决方案迁移到 Visual Studio 2005

关闭 Visual Studio .NET 2003 中的解决方案,然后启动 Visual Studio 2005。 在“ 文件 ”菜单上,单击“ 打开文件”,然后浏览到要迁移的解决方案的 .sln 文件。 这会启动 Visual Studio 2005 转换向导:

Aa479567.wap_11 (en-us,MSDN.10) .gif

图 1. Visual Studio 2005 转换向导

单击“ 下一步 ”继续执行向导,接受所有默认值。 Visual Studio 2005 会将解决方案及其包含的项目文件转换为使用 MSBuild 格式,这是 Visual Studio 2005 中的新项目文件格式。

作为迁移的一部分,Visual Studio 2005 会生成一个基于 XML 的日志文件,该文件提供转换过程的摘要,并标记迁移过程中遇到的任何问题。 默认情况下,转换日志文件与 .sln 文件保存在同一目录中。 如果以后在编译项目时遇到问题,可能需要重新引用转换日志文件。

步骤 5:在 Visual Studio 2005 中验证

将解决方案和项目文件升级到 Visual Studio 2005 格式后,验证应用程序生成时是否没有错误并按预期运行。 此时,最常见的错误或警告将是以下类型:

  • 与 .NET Framework 版本 2.0 中引入的名称冲突。
  • 有关使用已过时成员的警告。

若要解决命名冲突,可以使用命名空间完全限定现有名称以消除歧义,或者重命名成员,使其不冲突。

如果看到有关使用过时成员的警告,则警告消息通常会建议使用替代 API。 在这些情况下,可以继续使用 2.0 版.NET Framework中的过时成员。 但是,成员将在.NET Framework的下一个主要版本中被删除,因此最好删除成员并替换建议的替代项。

运行 Web 应用程序时,可能会看到一个错误,指出“目录列表被拒绝”,表明虚拟目录不允许列出其内容。 如果看到此错误消息,请执行以下操作:

  1. 关闭浏览器。
  2. 在解决方案资源管理器中,右键单击应用程序的起始页,然后单击“设为起始页”,以确保在应用程序运行时调用正确的页。
  3. 再次运行该应用程序。

步骤 6:将秘密Code-Behind类到分部类

如前所述,在 Visual Studio 2005 中,Web 应用程序项目使用分部类来存储设计器生成的代码。 这些类存储在代码隐藏文件中的单独文件中。 默认情况下,Visual Studio 2005 Web 项目转换向导不会为网页 (.aspx 文件创建 *.designer.cs (或 *.designer.vb) 文件,) 或用户控件 (.ascx 文件) 。 相反,代码的外观和工作方式与在 Visual Studio .NET 2003 中一样。

注意 向导在迁移过程中对代码文件进行最少的更改,以帮助确保在 Visual Studio 2005 中顺利转换为 Web 应用程序项目。

可以将代码保留为此格式。 如果这样做,则必须手动更新代码隐藏文件中的控制字段声明,但其他所有内容在 Visual Studio 2005 中都正常工作。

若要利用编辑器在生成的代码中维护字段声明的功能,应更新页面和控件,以使用 ASP.NET 2.0 中引入的分部类模型。 分部类可以更轻松地为代码隐藏文件组织生成的代码和自定义代码。 有关 .designer.cs 文件的详细信息,请参阅 方案 1:创建新的 Web 应用程序项目

若要迁移代码以使用分部类模型,请先确保代码编译时没有错误。 然后在解决方案资源管理器中,右键单击项目名称,然后单击“转换为 Web 应用程序”。 此命令循环访问项目中的每个页面和用户控件,将所有控件声明移动到 .designer.cs 文件,并将事件处理程序声明添加到 .aspx 和 .ascx 文件中的服务器控件标记。

注意 另一个选项是在各个页面上使用 “转换为 Web 应用程序” 命令。 如果要在将更改应用到整个应用程序之前密切watch每个页面所做的更改,可以先在几个页面上执行此操作。

Aa479567.wap_12 (en-us,MSDN.10) .gif

图 2. 将单个页面转换为 Web 应用程序项目格式

完成此过程后,检查“任务列表”窗口以查看是否报告了任何转换错误。 如果任务列表显示错误,请右键单击解决方案资源管理器中的相关页面,然后选择“查看代码”和“查看代码生成文件”以检查代码并解决问题。 请注意,显示在 “任务列表” 窗口中的错误和警告在 Visual Studio 会话之间仍然存在。 修复窗口中列出的错误后,可以从任务列表中清除项目。

注意 无法在 Visual Studio 中撤消 “转换为 Web 应用程序” 命令。 还原更改的最佳方法是从 Visual Studio .NET 2003 项目的备份还原,然后重新运行 Visual Studio 2005 迁移,如上面的步骤 4 中所述。

现在重新编译项目,以确保其编译时不会出错。 错误的一个可能来源是,如果修改了代码隐藏类中的控件声明,并且转换向导错误地处理了更改。

从此开始,在 Web 项目中添加新页面时,它们默认使用分部类模板。

步骤 7:检查并解决 XHTML 合规性问题

默认情况下,Visual Studio 2005 生成并验证 XHTML 兼容的标记。 这有助于生成符合标准的 Web 应用程序,并有助于最大程度地减少浏览器特定呈现的问题。 Visual Studio .NET 2003 未生成 XHTML 兼容的标记,因此你可能会看到 Visual Studio .NET 2003 中创建的页面的验证和呈现问题。

注意 验证错误仅供参考,并标记为警告。 验证错误不会阻止页面运行。

如果不想看到验证错误,请将 HTML 验证设置从 XHTML 过渡切换到 Internet Explorer 6.0 (这是 Visual Studio .NET 2003 默认设置) 。 在 “工具 ”菜单中,单击“ 选项”。 在“ 选项 ”对话框中,依次打开 “文本编辑器” 节点、 “HTML ”节点和“ 验证” 节点。 在“目标”列表中,选择“Internet Explorer 6.0”,然后取消选中“检查显示错误”框。 请注意,这并不能修复 XHTML 验证错误;它只是将验证架构切换到与 Visual Studio .NET 2003 生成标记的方式更兼容的架构,并禁止验证警告。

Aa479567.wap_13 (en-us,MSDN.10) .gif

图 3. 配置 HTML 验证

还可以将以下部分添加到项目的 Web.config 文件中,这会导致 ASP.NET 从服务器控件呈现不符合 XHTML 的旧 () 标记:

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

这将避免使用 ASP.NET 1.1 和 ASP.NET 2.0 显示的页面之间可能出现的轻微呈现差异。 有关详细信息,请参阅 MSDN 库中 的 ASP.NET 和 XHTML

Web 应用程序项目的未来

Web 应用程序项目提供的编译和生成模型与 Visual Studio .NET 2003 中使用的模型非常相似。 根据他们的要求,一些用户会发现 Visual Studio 2005 中的新网站项目选项更适合其应用程序,而其他用户将更喜欢 Web 应用程序项目选项。 Web 应用程序项目提供了将现有 Visual Studio .NET 2003 应用程序升级到 Visual Studio 2005 的最佳路径,强烈建议使用该方案。

我们希望强调有关 Visual Studio 2005 Web 应用程序项目未来的以下要点:

  • 今后,我们将完全支持 Visual Studio 2005 网站项目模型和 Visual Studio 2005 Web 应用程序项目模型。 可以选择最适合你的模型。
  • 在 Visual Studio 的未来版本中,将内置 Web 应用程序项目模型,并且支持 Web 应用程序项目模型和网站项目模型。

© Microsoft Corporation. 保留所有权利。