如何将 ASP.NET Core 2.1 升级到 ASP.NET Core 3.1 版本
介绍
本文提供了将 ASP.NET Core 2.1/2.0(或更低版本)升级到 3.1 的指南。.Net Core 3.1 有长期支持,如果您使用的是 2.0/2.1 或更低版本的 .NET Core 应用程序并且需要升级它,这篇文章将对您有所帮助。
迁移的第一步是更改目标框架。为此:右键单击项目-> 属性,然后在项目属性中选择目标框架为 3.1,如下图所示。
或者,您可以将目标框架从 .csproj 文件更改为netcoreapp3.1。
右键单击项目,然后单击编辑项目文件。
然后将目标框架更改为netcoreapp3.1。
从解决方案属性将 .net 核心版本从 2.1 更改为 3.1 后,然后构建解决方案。某些软件包将自动恢复和升级。您可能会在解决方案中遇到许多错误,但随之而来的是一些建议,显示升级解决方案框架后您需要做什么。根据建议,您可以解决问题;但是,在本文中,我们基本上将讨论 Startup。cs 文件更改非常重要,即使您在构建解决方案后也没有错误,也会抛出错误。
准则 1
即使您的解决方案成功构建,您在运行应用程序时也可能会收到以下错误。
当我们继续运行项目时,页面将加载以下错误消息。
让我们转到上述错误的解决方案。事情是在迁移到 ASP.NET Core 3.1 之后,我们必须使用 UseEndPoints() 而不是 UseMVC();
在 Startup.cs 文件的Configuration() 方法中,我们需要更改以下代码。
app.UseMvc(routes => {
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
});
到
app.UseEndpoints(endpoints => {
endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
});
准则 2
您可能会收到以下错误,
错误:EndpointRoutingMiddleware 匹配 EndpointMiddleware 设置的端点,因此必须在 EndpointMiddleware 之前添加到请求执行管道
如果您收到上述错误,请按照以下建议操作。
我们必须使用 app.UseRouting();在 Startup.cs 文件的 Configuration()方法中
app.UseRouting();//error message suggested to implement this
准则 3
此外,如果您已经实现了 SignalR,那么您将收到如下信息或警告消息:
在 ASP.NET Core 2.1 应用程序中,SignalR 如下所示编写,它驻留在 Startup.cs 文件的 Configuration() 方法中。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!