ASP.NET Core 2.2 迁移至 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
ASP.NET Core 2.2 迁移至 3.0 备忘录的更多相关文章
- ASP.NET Core 2.2 项目升级至 3.0 备忘录
将 ASP.NET Core 2.2 迁移至 ASP.NET Core 3.0 需要注意的地方记录在这篇随笔中. TargetFramework 改为 netcoreapp3.0 <Target ...
- 从 ASP.NET Core 3.1 迁移到 5.0
3月中旬,微软官方已经发布了dotnet 5的第一个预览版:5.0.0-preview.1. dotnet core经过前几个版本的发展和沉淀,到3.1已经基本趋于稳定. 所以从.net core 3 ...
- 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 2.1 迁移到 2.2 踩坑总结
官方迁移文档:https://docs.microsoft.com/zh-cn/aspnet/core/migration/21-to-22?view=aspnetcore-2.2&tabs= ...
- asp.net core 支付宝支付( 电脑2.0)
支付宝电脑支付实测在手机浏览器也可以唤醒手机支付宝进行支付,因此也可以作为支付宝手机web支付方式.支付宝电脑支付流程为使用支付宝官方sdk通过获取的支付宝参数构造DefaultAopClient实例 ...
- 【原创】Asp.NET Core Web API与Vue 3.0搭建前后分离项目
特地记录一下,网上的教程写的稀里糊涂的,整得我都心塞塞的,其实实现的过程蛮简单的 问题是这样的:我将Vue构建生成好的文件,放在后端wwwroot文件里面,并开启静态文件访问功能,结果总是无法显示相应 ...
- ASP.NET Core MVC配置差异(3.0和2.X)
https://www.cnblogs.com/lonelyxmas/p/10934388.html net core 2.x MVC配置 public void ConfigureServices( ...
- Asp.Net Core 2.2 - HTTP Error 500.0 - ANCM In-Process Handler Load Failure
检查发布文件下是否存在runtime这个文件夹,如图
随机推荐
- MySQL学习9 - 单表查询
一.单表查询的语法 二.关键字的执行优先级(重点) 三.单表查询示例 1.where约束 2.group by分组查询 3.聚合函数 4.HAVING过滤 5.order by查询排序 6.limit ...
- java处理含有中文的字符串.
1. 问题描述: 原始数据是以行为单位的, 每行固定长度931个字节, 汉字占2个字节, 按照字典描述,共有96个字典,只有第32个字典为中文地址, 所以需要单独处理. 由于项目设计保密,故删除敏感数 ...
- PYthon3:函数实现“自动售卖机”功能
题目: 自动贩卖机: # 只接受1元.5元.10元的纸币或硬币,可以1块,5元,10元.# 饮料只有橙汁.椰汁.矿泉水.早餐奶,售价分别是3.5,4,2,4.5# 写一个函数用来表示贩卖机的功能:用户 ...
- Android WebView重定向问题的解决方案
当WebView在加载网页时,有时会有重定向问题,返回键回退怎么也回退不掉,怎么办? WebView有一个getHitTestResult():返回的是一个HitTestResult,一般会根据打开的 ...
- installshield安装包制作
入门教程:http://blog.csdn.net/gaofang2009/article/details/5260065 入门教程:http://blog.csdn.net/plfl520/arti ...
- 深度学习在graph上的使用
原文地址:https://zhuanlan.zhihu.com/p/27216346 本文要介绍的这一篇paper是ICML2016上一篇关于 CNN 在图(graph)上的应用.ICML 是机器学习 ...
- codeforces 1017C - Cloud Computing 权值线段树 差分 贪心
https://codeforces.com/problemset/problem/1070/C 题意: 有很多活动,每个活动可以在天数为$[l,r]$时,提供$C$个价格为$P$的商品 现在从第一天 ...
- 随机获取min和max之间的一个整数
// 随机获取min和max之间的一个整数 const randomNum = (Min, Max) => { let Range = Max - Min; let Rand = Math.ra ...
- Java基础之中间件的初识
java常用的中间件 一般本地开发的话建议使用tomcat.(小项目,或者是个人开发) linux系统建议使用jetty或apache hpptd 大型的项目或者商业项目就用JBOSS或webloig ...
- 利用NSE脚本检测域传送和证书透明度滥用
nslookup -type=NS <domain> <server> nmap -p 53 --script dns-zone-transfer --script-args ...