简单记录下个人升级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
。
原来未修改前代码
修改后
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 中的新增项。
所以可能会有问题,如没问题请忽略。
原文:https://www.cnblogs.com/ya-jun/p/12340488.html