zoukankan      html  css  js  c++  java
  • .net core2.2升级.net core3.1/.net5

    1.目标框架设置为.net core3.1/.net5

    2.将所有的nuget包升级为最新版本 

    3.需要改动的一些地方

    Program.cs

        public class Program
        {
            public static void Main(string[] args)
            {
                CreateWebHostBuilder(args).Build().Run();
            }
    
            public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
                WebHost.CreateDefaultBuilder(args)
                    .UseStartup<Startup>();
        }

    更改为:

    using Microsoft.Extensions.Hosting;
        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<Startup>();
                 });
        }

    4.Startup.cs

    ConfigureServices方法

    (1)设置api json返回格式

    //.netCore2.2
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddJsonOptions(
        opt => {
          opt.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm";
    });
    //.net Core3.1
    services.AddControllersWithViews(option =>
    {
       option.EnableEndpointRouting = false;
    }).SetCompatibilityVersion(CompatibilityVersion.Latest).AddControllersAsServices().AddNewtonsoftJson
    (
       json =>
       {
          //统一设置JsonResult
          json.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
       }
    );

    (2)路由变化 Configure方法

    //.net core2.2 
    app.UseMvc(routes =>
    {
       routes.MapRoute(
           name: "default_area",
           template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
       routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
     });
    
    app.UseMvc(routes =>
    {
        routes.MapRoute(
        name: "areas",
        template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    });
    
    //.net 5
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default_area",
            pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
    
    app.UseEndpoints(endpoints =>
    {
       endpoints.MapControllerRoute(
          name: "areas",
          pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    });

    (3)一些问题

     

    安装包:Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 

    ConfigureServices方法

     services.AddControllersWithViews().AddRazorRuntimeCompilation();

    (4)检测到包降级: System.Runtime.Handles 从 4.3.0 降级到 4.0.1。直接从项目引用包以选择不同版本。  MyBlog.Swagger -> Swashbuckle.AspNetCore.Filters 6.0.1 -> Scrutor 3.0.1 -> Microsoft.Extensions.DependencyModel 2.1.0 -> Microsoft.DotNet.PlatformAbstractions 2.1.0 -> System.IO.FileSystem 4.0.1 -> runtime.unix.System.IO.FileSystem 4.3.0 -> System.Runtime.Handles (>= 4.3.0)  MyBlog.Swagger -> Swashbuckle.AspNetCore.Filters 6.0.1 -> Scrutor 3.0.1 -> Microsoft.Extensions.DependencyModel 2.1.0 -> Microsoft.DotNet.PlatformAbstractions 2.1.0 -> System.IO.FileSystem 4.0.1 -> System.Runtime.Handles (>= 4.0.1)

    在对应项目下安装System.Runtime.Handles 4.3.0版本的包就好了

  • 相关阅读:
    codephp 自研PHP框架并实现composer包管理
    收藏!17 张程序员专属壁纸(使用频率很高)
    git reset hard HEAD^后显示more?的解决方案
    如果有一天我不得不离开IDE,没有其它原因,一定是ta ?
    centos7 下安装composer失败
    不知道如何技术变现?19个程序员接私活平台汇总
    MySQL常见面试题:什么是主从延时?如何降低主从延时?
    Nginx服务器,修改html 文件后页面不更新生效(已解决)
    《Microsoft SQL Server 2005: 数据库基础由入门到精通》书评
    讲座资源:Silverlight In Action
  • 原文地址:https://www.cnblogs.com/LiChen19951127/p/13986456.html
Copyright © 2011-2022 走看看