演练:将 Visual Studio .NET 2003 Web 项目转换为 Visual Studio Web 应用程序项目

更新:2007 年 11 月

通过将 Visual Studio .NET 2003 Web 项目转换为 Visual Studio 2008 Web 应用程序项目,可以利用 Visual Studio 2008 的功能。其中包括重构、类关系图、测试开发和泛型。Web 应用程序项目模型还可以提供 ASP.NET 2.0 及更高版本的所有功能。这些功能包括母版页、数据控件、成员资格和登录控件、角色管理、Web 部件、个性化设置、站点导航以及主题。

Visual Studio 2008 Web 应用程序项目模型与适用于 Visual Studio .NET 2003 应用程序的项目模型最为匹配。如果要将 Visual Studio .NET 2003 Web 项目转换为 Visual Studio 2008,此项目模型将十分有用。有关新增功能的更多信息,请参见 ASP.NET 和 Web 开发新增功能

Aa983456.alert_note(zh-cn,VS.90).gif说明:

可以使用 Visual Studio 或 Visual Web Developer 速成版创建 ASP.NET Web 应用程序项目。

本演练介绍如何在 Visual Studio 2008 中将现有的 Visual Studio .NET 2003 Web 项目转换为 Web 应用程序项目。Web 应用程序项目模型使用的概念方法与 Visual Studio .NET 2003 中的 Web 项目相同。该概念方法包括一个项目文件,用于将文件和编译包含到单个程序集中,或将它们排除在外。有关更多信息,请参见 自 Visual Studio .NET 的 Web 项目转换

Aa983456.alert_note(zh-cn,VS.90).gif说明:

若要将使用 Microsoft Office FrontPage 2003 的网站转换为 Web 应用程序项目,首先需要将 FrontPage 网站转换为 Visual Studio 2008 网站项目。然后再将网站项目转换为 Web 应用程序项目。有关更多信息,请参见演练:在 Visual Studio 中将网站项目转换为 Web 应用程序项目

本演练涉及以下任务:

  • 打开并验证 Visual Studio .NET 2003 Web 项目。

  • 备份 Visual Studio .NET 2003 Web 项目。

  • 将 Visual Studio .NET 2003 Web 项目转换为 Visual Studio 2008。

  • 验证 Visual Studio 2008 中的 Web 应用程序项目。

  • 将代码隐藏类转换为分部类。

  • 检查和解决 XHTML 遵从性问题。

先决条件

若要完成本演练,您需要:

  • Visual Studio .NET 2003

  • Visual Studio 2008、Visual Studio 2005 Service Pack 1 (SP1) 或 Visual Web Developer 速成版

  • .NET Framework 2.0 版

打开并验证 Visual Studio .NET 2003 Web 项目

转换项目之前,应验证项目是否可以正确运行。这有助于防止在转换期间发生错误。

打开并验证 Visual Studio .NET 2003 Web 项目

  1. 打开 Visual Studio .NET 2003。

  2. 在**“文件”菜单中,单击“打开文件”**,然后键入或浏览至要验证的解决方案的 .sln 文件。

    Aa983456.alert_note(zh-cn,VS.90).gif说明:

    在 Visual Studio .NET 2003 中,构成项目的文件包含在解决方案文件 (.sln) 中。

  3. 在**“项目”菜单中单击“生成解决方案”**。

  4. 在**“调试”菜单中单击“启动”**。

  5. 验证项目是否按预期运行。

备份 Visual Studio .NET 2003 Web 项目

开始转换过程之前,最好先备份 Visual Studio .NET 2003 解决方案和项目文件。如果发生任何转换问题,您可以还原为原来的 Visual Studio .NET 2003 解决方案。

若要备份项目,请在 Visual Studio .NET 2003 中复制该项目。

在转换前备份 Visual Studio .NET 2003 Web 项目

  1. 打开 Visual Studio .NET 2003。

  2. 在**“文件”菜单中,单击“打开文件”**,然后键入或浏览至要备份的解决方案的 .sln 文件。

  3. 在**“项目”菜单中单击“复制项目”**。

  4. 在**“复制项目”框中,选择“目标项目文件夹”**。

  5. 选择**“Web 访问方法”选项。可以使用“FrontPage”“文件共享”**来复制文件。

  6. 选择**“包括项目文件夹中的所有文件”选项,然后单击“确定”**。

将 Visual Studio .NET 2003 Web 项目转换为 Visual Studio 2008

Visual Studio 2008 可将 Visual Studio .NET 2003 解决方案和项目文件转换为使用 Microsoft Build Engine (MSBuild) 格式,此格式是 Visual Studio 2008 中的项目文件格式。

在转换过程中,Visual Studio 2008 会生成一个基于 XML 的日志文件,其中提供了转换摘要并标记了各种问题。默认情况下,此转换日志文件与 .sln 文件保存在同一目录中。如果在编译转换后的项目时遇到问题,您可以回来参考此转换日志文件。

将 Web 项目转换为 Visual Studio 2008

  1. 在 Visual Studio .NET 2003 中,关闭该解决方案文件。

  2. 打开 Visual Studio 2008。

  3. 在**“文件”菜单中,单击“打开文件”**,然后键入或浏览至要转换的解决方案的 .sln 文件。

    **“Visual Studio 2008 转换向导”**随即打开。

  4. 单击**“下一步”,按照说明完成此向导,然后单击“完成”**。

验证 Visual Studio 2008 中的 Web 应用程序项目

将解决方案和项目文件转换为 Visual Studio 2008 格式后,应验证应用程序是否可以成功生成并按预期方式运行。

验证 Visual Studio 2008 中的 Web 应用程序项目

  1. 在 Visual Studio 2008 的**“文件”菜单上,单击“打开文件”**,然后键入或浏览至要验证的解决方案的 .sln 文件。

  2. 在**“项目”菜单中单击“生成解决方案”**。

  3. 在**“调试”菜单中单击“启动”**。

  4. 验证 Web 应用程序项目是否按预期方式运行。

常见错误和警告

下面列出了转换过程中最常见的错误或警告类型:

  • 与 .NET Framework 2.0 版中引入的名称发生冲突。

  • 有关过时成员的警告。

  • 运行 Web 应用程序时发生的问题。

若要修复命名冲突,可使用命名空间完全限定现有的名称,以消除名称多义性。另外,也可以重命名发生冲突的类型和成员,以化解冲突。有关命名冲突的更多信息,请参见 ASP.NET 2.0 迁移概述命名空间命名准则

当显示有关过时成员的警告时,该警告消息通常会建议改用其他成员。在此情况下,可以继续使用过时的成员。但是,..NET Framework 的下一个主要版本将移除这些成员。因此,最好移除这些成员,并将其替换为建议的成员。

如果在运行 Web 应用程序时出现一个错误,指示目录列表已被拒绝,则表明 Web 应用程序的虚拟目录可能不允许列出其内容。若要修复此问题,请在**“解决方案资源管理器”中右击应用程序的起始页,然后单击“设为起始页”**。这样可确保应用程序在运行时调用正确的页。

将代码隐藏类转换为分部类

在 Visual Studio 2008 中,Web 应用程序项目对 Visual Studio 生成的代码使用分部类。这些类存储在独立于代码隐藏文件的文件中。默认情况下,Visual Studio 2008 转换向导不会为网页(.aspx 文件)或用户控件(.ascx 文件)创建 *.designer.cs 文件或 *.designer.vb 文件。但这些代码的外观和运行方式与在 Visual Studio .NET 2003 中一样。

Aa983456.alert_note(zh-cn,VS.90).gif说明:

在转换过程中,Visual Studio 2008 转换向导会尽量减少对代码文件所做的更改。这有助于平稳转换到 Visual Studio 2008 中的 Web 应用程序项目。

您可以继续让代码采用 Visual Studio .NET 2003 格式。如果这样做,则必须像在 Visual Studio .NET 2003 中那样手动更新代码隐藏文件中的控件字段声明。但如果要使用生成代码中的字段声明维护功能,则应更新页和控件以使用分部类模型。利用分部类,将更易于组织代码隐藏文件的生成代码和自定义代码。有关更多信息,请参见 分部 (Visual Basic)分部(类型)(C# 参考)

转换代码以使用分部类模型

  1. 确保代码在编译时不出错。

  2. 在**“解决方案资源管理器”中,右击项目名称,然后单击“转换为 Web 应用程序”**。

    此命令将循环访问项目中的每个页和用户控件。它会将所有控件声明都移到一个 .designer.cs 或 designer.vb 文件中。此外,它还会将事件处理程序声明添加到 .aspx 和 .ascx 文件的服务器控件标记中。

    Aa983456.alert_note(zh-cn,VS.90).gif说明:

    您可以对各个页使用“转换为 Web 应用程序”命令。此操作可以先在少数页上进行,这样您可以在看到对每页所做的更改后,再将这些更改应用于整个应用程序。

    **“转换为 Web 应用程序”**命令的效果不可撤消。还原这些更改的最佳方法是从 Visual Studio .NET 2003 项目的备份进行还原,然后再按照前面的说明重新运行 Visual Studio 2008 转换。

  3. 完成此过程后,请检查**“任务列表”**窗口中是否报告了任何转换错误。

  4. 如果**“任务列表”显示了错误,请右击“解决方案资源管理器”中的相关页,然后选择“查看代码”“查看代码生成文件”**来检查代码并解决问题。

    Aa983456.alert_note(zh-cn,VS.90).gif说明:

    “任务列表”窗口中显示的错误和警告在 Visual Studio 会话之间保持不变。解决了此窗口中列出的错误后,您可以从任务列表中清除项。

  5. 重新编译项目,以确保它在编译时不出错。

此后,如果再向此 Web 项目中添加新页,这些页将默认使用分部类模板。有关更多信息,请参见 ASP.NET 2.0 迁移概述

检查和解决 XHTML 遵从性问题

默认情况下,Visual Studio 2008 将生成并验证符合 XHTML 的标记。这有助于生成符合标准的 Web 应用程序和最大限度地减少浏览器特定的呈现问题。默认情况下,Visual Studio .NET 2003 并不生成符合 XHTML 的标记。因此,在将 Web 应用程序转换为 Visual Studio 2008 后,您会发现用 Visual Studio .NET 2003 创建的页可能会出现验证和呈现问题。

Aa983456.alert_note(zh-cn,VS.90).gif说明:

验证错误仅起通知作用并被标记为警告。验证错误不会阻碍页的运行。

如果希望像在 Visual Studio .NET 2003 中一样看到 HTML 验证错误,请将 HTML 验证设置从**“XHTML Transitional”切换为“Internet Explorer 6.0”。在 Visual Studio .NET 2003 中,“Internet Explorer 6.0”**是用于 HTML 验证的默认设置。有关更多信息,请参见如何:为 Visual Web Developer 中的 HTML 编辑选择验证架构

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

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

这样可以避免在使用 ASP.NET 1.1 和 ASP.NET 2.0 显示页时可能出现的轻微呈现差别。请注意,xhtmlConformance 模式更改只能用于解决各种转换问题。当 Web 应用程序可正确运行时,请移除旧的配置设置。有关更多信息,请参见 ASP.NET 和 XHTMLASP.NET 2.0 迁移概述

请参见

任务

如何:升级在 Visual Studio .NET 2002 或 Visual Studio .NET 2003 中创建的项目

概念

自 Visual Studio .NET 的 Web 项目转换

ASP.NET 2.0 迁移概述

ASP.NET 网页代码模型

ASP.NET 和 XHTML

参考

分部 (Visual Basic)

分部(类型)(C# 参考)

分部类和方法(C# 编程指南)

Visual Studio 转换向导

其他资源

命名空间命名准则