成都网站建设设计

将想法与焦点和您一起共享

ASP.NETCore3.0迁移的示例分析-创新互联

这篇文章给大家分享的是有关ASP.NET Core 3.0迁移的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联公司专业为企业提供博乐网站建设、博乐做网站、博乐网站设计、博乐网站制作等企业网站建设、网页设计与制作、博乐企业网站模板建站服务,十多年博乐做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

一.前言

.NET Core 3.0将会在 .NET Conf 大会上正式发布,截止今日发布了9个预览版,改动也是不少,由于没有持续关注,今天将前面开源的动态WebApi项目迁移到.NET Core 3.0还花了不少时间踩坑,给大家分享一下我在迁移过程中遇到的坑。迁移的版本是当前Release新版本 .NET Core 2.2 到 .NET Core 3.0 Preview 9。

二.ASP.NET Core 项目迁移

官方迁移文档:从 ASP.NET Core 2.2 迁移到3.0 ,这个官方文档比较详细,但是有一些东西里面并没有写。

1.更改框架版本

将 TargetFramework 版本改为netcoreapp3.0

ASP.NET Core 3.0迁移的示例分析

2.移除Nuget包

移除所有 Nuget包

ASP.NET Core 3.0迁移的示例分析

将其余 Nuget 包更新到支持 .NET Core 3.0 版本

3.Program更改

 public class Program
 {
  public static void Main(string[] args)
  {
   CreateHostBuilder(args).Build().Run();
  }

  public static IHostBuilder CreateHostBuilder(string[] args) =>
   Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
     webBuilder.UseStartup();
    });
 }

ASP.NET Core 3.0迁移的示例分析

4.Startup更改

ConfigureServices 方法:

services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); 改为services.AddControllers()(WebApi) /services.AddControllersWithViews();(MVC)

ASP.NET Core 3.0迁移的示例分析

Configure 方法:

1、该方法里获取Host环境信息接口类型,IHostingEnvironment改为IWebHostEnvironment

ASP.NET Core 3.0迁移的示例分析

2、app.UseMVc 改为:

WebApi:

  app.UseRouting();

      app.UseAuthorization();

      app.UseEndpoints(endpoints =>
      {
        endpoints.MapControllers();
      });

MVC:

  app.UseRouting();

      app.UseAuthorization();

      app.UseEndpoints(endpoints =>
      {
        endpoints.MapControllerRoute(
          name: "default",
          pattern: "{controller=Home}/{action=Index}/{id?}");
      });

关于Json组件

ASP.NET Core 3.0 默认移除了Newtonsoft.Json ,使用了微软自己实现的System.Text.Json,如果要改为 Newtonsoft.Json ,那么有以下两步:

1.安装Nuget包:

Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson

2.注册

services.AddControllers().AddNewtonsoftJson();

三.类库(Class Library Net Standard 2.0)项目迁移

因为 ASP.NET Core 3.0 对元包机制的改动,现在不能通过nuget安装 Microsoft.AspNetCore.All 或者 Microsoft.AspNetCore.App 3.0版本,以及他们包含的大多数Nuget包也不能通过nuget安装了(没有3.0对应的版本)。如果说还引用2.2版本的nuget包,那么运行起来可能会出错。元包被包含在了 .NET Core SDK中,这意味着如果我们的类库项目依赖了 AspNetCore 相关组件,那么将没法继续将项目目标框架设置为 .NET Standard 了,只能设置为.NET Core 3.0,因为 ASP.NET Core 3.0 only run on .NET Core 。

元包机制改动原因:https://github.com/aspnet/AspNetCore/issues/3608

ASP.NET Core 3.0迁移的示例分析

1.更改框架版本

ASP.NET Core 3.0迁移的示例分析

2.更新Nuget包

移除 Microsoft.AspNetCore.* 不具有 .NET Core 3.0 的版本,例如:

ASP.NET Core 3.0迁移的示例分析

添加 FrameworkReference(不是 PackageReference) 引用:

ASP.NET Core 3.0迁移的示例分析

感谢各位的阅读!关于“ASP.NET Core 3.0迁移的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


分享名称:ASP.NETCore3.0迁移的示例分析-创新互联
标题链接:http://chengdu.cdxwcx.cn/article/dsppsh.html