首页>教程>ASP.NET教程>.NET项目升级>.NET升级三-ASP.NET MVC 应用升级到 .NET 6

此组别内的文章

需要支持?

如果通过文档没办法解决您的问题,请提交工单获取我们的支持!

.NET升级三-ASP.NET MVC 应用升级到 .NET 6

内容纲要

.NET 升级助手是一种命令行工具,可帮助将 .NET Framework ASP.NET MVC 应用升级到 .NET 6。 本文提供以下内容:

  • 演示如何针对 .NET Framework ASP.NET MVC 应用运行该工具
  • 故障排除提示

升级 .NET Framework ASP.NET MVC 应用

本部分演示如何针对新创建的面向 .NET Framework 4.6.1 的 ASP.NET MVC 应用运行 NET 升级助手。 若要详细了解如何安装此工具,请查看 .NET 升级助手概述

初始演示设置

如果你要针对你自己的 .NET Framework 应用运行 .NET 升级助手,可跳过此步骤。 如果你只想试用一下来看看它的工作原理,可在此步骤中了解如何设置示例 ASP.NET MVC 和 Web API (.NET Framework) 项目以供使用。

借助 Visual Studio,使用 .NET Framework 创建一个新的 ASP.NET Web 应用程序项目。

New ASP.NET Web Application project in Visual Studio

将项目命名为 AspNetMvcTest。 将项目配置为使用 .NET Framework 4.6.1。

Configure ASP.NET project in Visual Studio

在下一对话框中,选择“MVC”应用程序,然后选择“创建” 。

Create an ASP.NET MVC project in Visual Studio

查看所创建的项目及其文件,尤其是它的项目文件。

运行升级助手

打开终端,导航到目标项目或解决方案所在的文件夹。 运行 upgrade-assistant 命令,传入你要针对的项目的名称(可从任意位置运行该命令,只要项目文件的路径有效就行)。控制台复制

upgrade-assistant upgrade .\AspNetMvcTest.csproj

该工具将运行并显示它将执行的步骤列表。

.NET Upgrade Assistant initial screen

完成每个步骤后,该工具都会提供一组命令,用户可应用这些命令,也可跳过下一步骤、查看更多详细信息、配置日志记录或退出该过程。 如果该工具检测到某个步骤将不执行任何操作,它会自动跳过该步骤,转到下一步骤,直到到达有要执行的操作的步骤为止。 如果未进行其他任何选择,那么按 Enter 将执行下一步

在此示例中,每次都会选择“应用”步骤。 第一步是备份项目。

.NET Upgrade Assistant back up project

该工具会提示输入自定义路径进行备份或使用默认路径,后者会将项目备份放在具有 .backup 扩展名的同一文件夹中。 此工具接下来做的是将项目文件转换为 SDK 样式。

.NET Upgrade Assistant convert project to SDK style

更新项目格式后,下一步是更新项目的 TFM。

.NET Upgrade Assistant update TFM

接下来,该工具会更新项目的 NuGet 包。 多个包需要更新,且会添加一个新的分析器包。

.NET Upgrade Assistant update NuGet packages

更新包后,接下来是添加模板文件(如果有)。 该工具指示有 4 个必须添加的预期模板项,随后它会添加这些项。 以下是模板文件的列表:

  • Program.cs
  • Startup.cs
  • appsettings.json
  • appsettings.Development.json

ASP.NET Core 会使用这些文件来进行应用启动和配置。

.NET Upgrade Assistant add template files

接下来,该工具会迁移配置文件。 该工具会标识应用设置并禁用不受支持的配置部分,然后迁移 appSettings 配置值。

.NET Upgrade Assistant migrate config

该工具通过迁移 system.web.webPages.razor/pages/namespaces 来完成配置文件的迁移。

.NET Upgrade Assistant migrate config completed

该工具会应用已知的修补程序来将 C# 引用迁移到其新的对应项。

.NET Upgrade Assistant update C# source

这是最后一个项目,因此下一步是“移动到新的项目”,它提示完成迁移整个解决方案的过程。

.NET Upgrade Assistant completing the solution

完成此过程后,打开项目文件并进行查看。 查找静态文件,如下所示:XML复制

  <ItemGroup>
    <Content Include="fonts\glyphicons-halflings-regular.woff2" />
    <Content Include="fonts\glyphicons-halflings-regular.woff" />
    <Content Include="fonts\glyphicons-halflings-regular.ttf" />
    <Content Include="fonts\glyphicons-halflings-regular.eot" />
    <Content Include="Content\bootstrap.min.css.map" />
    <Content Include="Content\bootstrap.css.map" />
    <Content Include="Content\bootstrap-theme.min.css.map" />
    <Content Include="Content\bootstrap-theme.css.map" />
    <Content Include="Scripts\jquery-3.4.1.slim.min.map" />
    <Content Include="Scripts\jquery-3.4.1.min.map" />
  </ItemGroup>

该由 Web 服务器处理的静态文件应移动到名为 wwwroot 的根级别文件夹下适当的文件夹中。 移动文件后,可删除项目文件中与这些文件对应的 <Content> 元素。 事实上,可删除所有 <Content> 元素及其包含组。 此外,应删除指向客户端库(如 bootstrap 或 jQuery)的所有 <PackageReference>

默认情况下,项目将被转换为类库。 请将第一行的 Sdk 属性更改为 Microsoft.NET.Sdk.Web,并将 <TargetFramework> 设置为 net5.0。 编译该项目。 此时,错误数应当相当小。 在移植新的 ASP.NET 4.6.1 MVC 项目时,其余错误引用 App_Start 文件夹中的文件:

  • BundleConfig.cs
  • FilterConfig.cs
  • RouteConfig.cs

可删除这些文件和整个 App_Start 文件夹。 同样,可删除 Global.asax 和 Global.asax.cs 文件。

此时,只剩下与捆绑相关的错误。 可通过多种方式在 SP.NET Core 中配置捆绑和缩减。 选择最适合你的项目的任何内容。

故障排除提示

使用 .NET 升级助手时,可能会出现一些已知问题。 某些情况下,.NET 升级助手在内部使用的 try-convert 工具会出现问题。

有关更多故障排除提示和已知问题,可查看此工具的 GitHub 存储库

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索