首页 > Web开发 > 详细

.NET Core 2.X 升级 3.1

时间:2020-02-21 12:35:05      阅读:106      评论:0      收藏:0      [点我收藏+]

简单记录下个人升级3.1过程。

 

1.修改目标框架

技术分享图片

 

 

 搜索解决方案--netcoreapp-后面几点几全部改为3.1

 

在搜索到的文件中,看是否存在这两个-----移除 Microsoft.AspNetCore... 的 PackageReference,因为已经包含在3.1的目标框架内了。

<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />

  

 

 

2.升级所依赖的NuGet包

将项目依赖的所有NuGet包更新至最新版本

技术分享图片

 

 

 

 

 

3.启动更改

Program.cs

未来版本中将弃用 WebHostBuilder,并将其替换为 HostBuilder

 

原来未修改前代码

技术分享图片

 

 

 

 

HostBuilder 替换 WebHostBuilder

修改后

技术分享图片

 

 

 

 

 Startup.cs

下图显示了应用中已删除和已更改的行:

 技术分享图片

 

 

 在上图,标红的是要删除的代码。

 

 

技术分享图片

 

 

 在上图中,添加的代码显示为绿色。

 public void ConfigureServices(IServiceCollection services)
{
        services.AddControllersWithViews();   //控制器+视图=mvc模式
        services.AddControllers();   //单控制器=WebApi
        services.AddRazorPages();   //Razor Pages
}

 

路由启动方式

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

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

 

 

技术分享图片

改到这差不多就改完了。然后删除掉项目中的隐藏文件   .vs     .vscore       .idea     然后重启项目,重新生成下解决方案即可。

----------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

如果刚好你也用  Nlog 日志 

原写法

loggerFactory.AddNLog();//添加NLog
env.ConfigureNLog("LogConfig/nlog.config");//读取Nlog配置文件 

修改为

loggerFactory.AddNLog();//添加NLog
NLog.Web.NLogBuilder.ConfigureNLog("LogConfig/nlog.config");//读取Nlog配置文件

 

 

又刚好你们返回json是差不多和我一样返回的

技术分享图片

 

 需要在 Startup.cs 添加 Newtonsoft.json

 public void ConfigureServices(IServiceCollection services)
{           
     services.AddMvc().AddNewtonsoftJson(options =>
     {
                //忽略循环引用
                options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                //不使用驼峰样式的key
                options.SerializerSettings.ContractResolver = new DefaultContractResolver();
      });
 }

ASP.NET Core 的默认 JSON 序列化程序现已 System.Text.Json,这是 .NET Core 3.0 中的新增项。

所以可能会有问题,如没问题请忽略。

 

 

从 ASP.NET Core 2.2 迁移到3.0

.NET Core 2.X 升级 3.1

原文:https://www.cnblogs.com/ya-jun/p/12340488.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!