ASP.NET Core 2.2 项目升级至 3.0 备忘录
.NET Core 3.0及ASP.NET Core 3.0 前瞻
ASP.NET Core 3.0 迁移避坑指南
将 ASP.NET Core 2.2 迁移至 ASP.NET Core 3.0 需要注意的地方记录在这篇随笔中。
TargetFramework 改为 netcoreapp3.0
<TargetFramework>netcoreapp3.0</TargetFramework>
从 Web 项目(Microsoft.NET.Sdk.Web)中移除 Microsoft.AspNetCore.App 的 PackageReference
<PackageReference Include="Microsoft.AspNetCore.App" />
对于类库项目,如果有对 Microsoft.AspNetCore.App 的 PackageReference 引用,需要改为 FrameworkReference
<ItemGroup><FrameworkReference Include="Microsoft.AspNetCore.App" /></ItemGroup>
或者将 Microsoft.NET.Sdk 改为 Microsoft.NET.Sdk.Web ,将 OutputType 设置为 Library ,详见博问
<Project Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>netcoreapp3.0</TargetFramework><OutputType>Library</OutputType></PropertyGroup></Project>
Program 中 WebHost 改为 Host (注:使用 Host 有个小坑,详见 博问)
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>(); });}
如果不使用 Razor Pages ,在 Startup.ConfigureServices 中将 services.AddMvc() 改为
services.AddControllers();
Startup 中 app.UseMvc() 改为 app.UseRouting() 与 app.UseEndpoints()
app.UseRouting();app.UseEndpoints(endpoints =>{ endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");});
.NET Core 3.0 SDK 的 docker 镜像
mcr.microsoft.com/dotnet/core/sdk:3.0
ASP.NET Core 3.0 runtime 的 docker 镜像
mcr.microsoft.com/dotnet/core/aspnet:3.0
Web API 响应的 json 数据中文被编码的问题(详见博问)
services.AddMvc().AddNewtonsoftJson();
对于 Razor Class Library 项目 .csproj 配置
<Project Sdk="Microsoft.NET.Sdk.Razor"><PropertyGroup><TargetFramework>netcoreapp3.0</TargetFramework><AddRazorSupportForMvc>true</AddRazorSupportForMvc></PropertyGroup><ItemGroup><FrameworkReference Include="Microsoft.AspNetCore.App" /></ItemGroup></Project>
EF Core 3.0 配置一对一关系(生成 INNER JOIN SQL 语句)
builder.HasOne(p => p.ViewCount) .WithOne() .IsRequired() .HasPrincipalKey<ViewCount>(vc => vc.PostId);
EF Core 3.0 OwnsOne 关系配置注意
builder.OwnsOne(b => b.ScoreRank, sr =>{ sr.ToTable("ScoreRank"); sr.HasKey(x => x.BlogId);//EF Core 3.0 所需 sr.WithOwner().HasForeignKey(x => x.BlogId);});
EF Plus(Z.EntityFramework.Plus.EFCore) 不支持 .NET Core 3.0 ,详见博问
EFCore.BulkExtensions 也不支持 .NET Core 3.0 ,但只需修改它的1行代码就可以支持,详见博问
如果数据库服务器用的是 SQL Server 2008 ,并且用的是 docker 容器部署,需要修改 openssl 的配置,详见博问
【相关链接】
Breaking changes to Microsoft.AspNetCore.App in 3.0
原文链接:https://www.cnblogs.com/dudu/p/10776880.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
ASP.NET Core 2.2 项目升级至 3.0 备忘录相关推荐
- asp.net core 1.1 项目升级至 asp.net core 2.0 preview 2
这两天把一个 asp.net core 1.1 的项目迁移到了 asp.net core 2.0 preview 2 ,在这篇随笔中记录一下. 如果项目在有 global.json 文件,需要删除或修 ...
- core webapi缩略图_在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件
新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World! 一.创建一个空项目 请查看 新建 .NET Core 项目 -- Hello World! ...
- asp.net core 从 3.1 到 5.0
asp.net core 从 3.1 到 5.0 Intro 就在前几天,微软宣布了 .NET5 发布了 RC1 版本,这也意味着 .NET5 的开发基本稳定了,正式发布之前,不会再新增新的 Feat ...
- IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API
IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习之保护API. 使用IdentityServer4 来实现使用客户端凭据保护ASP.N ...
- ASP.NET Core 介绍和项目解读
1. 前言 2. ASP.NET Core 简介 2.1 什么是ASP.NET Core 2.2 ASP.NET Core的特点 2.3 ASP.NET Core 项目文件夹解读 2.3.1 项目文件 ...
- Asp.NET Core 轻松学-项目目录和文件作用介绍
前言 上一章介绍了 Asp.Net Core 的前世今生,并创建了一个控制台项目编译并运行成功,本章的内容介绍 .NETCore 的各种常用命令.Asp.Net Core MVC 项目文件目录 ...
- [译]使用LazZiya.ExpressLocalization开发多语言支持的ASP.NET Core 2.x项目
介绍 开发多语言支持的ASP.NET Core 2.x Web应用程序需要大量的基础架构设置,并且耗费时间和精力.这篇文章,我们将使用LazZiya.ExpressLocalization nuget ...
- ASP.NET Core 开源论坛项目 NETCoreBBS
ASP.NET Core 轻量化开源论坛项目,ASP.NET Core Light forum NETCoreBBS 采用 ASP.NET Core + EF Core Sqlite + Bootst ...
- 使用LazZiya.ExpressLocalization开发多语言ASP.NET Core 2.x项目
目录 介绍 背景 创建项目 安装LazZiya.ExpressLocalization 创建本地化资源 使用代码 添加语言导航 本地化视图 本地化URL 本地化标识(Identity)视图 本地化数据 ...
最新文章
- 如何保证世界杯直播不卡顿?腾讯云要用AI解决这个问题
- 经过研究发现。c++里面的const意思是说,我是const,成员也是const!!!
- Eclipse工程标准目录层次结构
- Java 设计模式之单例模式
- 桌面时钟代码_iOS 14 制作自己的桌面 Widget
- 查找前端依赖 jquery css js 时间控件 不要用远程依赖 会变化的 card
- scrapy安装_爬虫框架Scrapy简介与安装
- 计算机学科技术前沿:第31次中国互联网络发展状况统计报告
- CKeditor4.7.3标准版图片上传及相关配置
- 1.7更换JDK1.6版本后,无法启动eclipse mars解决办法。
- 铁路售票系统_城轨交通自动售检票(AFC)实训系统中心_地高铁车站票务实训如何建设...
- phpcms v9模板制作教程
- 遗传算法实践详解(deap框架初体验)
- 2010年及以前的微博
- 一条wmic命令解决硬盘序列号和mac地址查询
- Python判断一个正整数是否为素数的算法
- 如何读取环境变量值?Go 每日一库之 godotenv
- JSP学生考勤管理系统考勤管理系统jsp学生迟到早退考勤查询系统(考勤管理系统源码)
- 麦当劳“制服黑丝”,火了!
- 网关和代理服务器的异同
热门文章
- 转载 一篇UI规范文件
- 北京一公交车发生爆炸 疑为乘客携带药品起反应
- geek_Ask How-To Geek:营救受感染的PC,安装无膨胀iTunes和驯服疯狂的触控板
- 在c语言中load,一道题理清Objective-C中的load和initialize
- 在数据库插入带小数点数据的问题
- EntityFramework用法探索(三)CodeFirst流畅API
- 存储世界瞬息万变 SSD掀行业浪潮
- “爱思助手”曝为iOS木马:可绕过苹果DRM机制
- 基本线程同步(三)在同步的类里安排独立属性
- Android延时执行调用的几种方法