一、项目升级
1、使用VS2019打开旧有项目
2、升级NUGET的引用
右击,项目中的文件packages.config,出现如下图 ,点击高亮选中项:
3、修改项目文件.csproj
1、卸载项目
2、右键编辑项目的.csproject
3、删除所有内容
4、添加如下代码 ,并重新加载项目:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>
二、EF的升级
1、调整为DI注入模式
1、修正构件函数调整为:
2、WEB项目的Startup.cs文件中添加如下代码(示例中添加的是sqllite的数据库连接):
2、迁移方法的变更
1、右击,DBCONTEXT所在的项目,编辑项目文件.csproj,添加如下代码:
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
2、DBCONTEXT所在的项目,添加NUGET引用:Microsoft.EntityFrameworkCore.Tools。
3、在WEB项目或其他调用的项目中,添加NUGET引用:Microsoft.EntityFrameworkCore.Design。
4、程序包管理器控制台中执行命令:add-migration 你的迁移名称。完成初次迁移。
三、其他细节配置
1、COOKIES的开启
在Startup.cs的类中,方法:ConfigureServices中添加如下代码:
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddAuthorization()
.AddAuthentication(o => o.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(o =>
{
o.Cookie.Name = ".timfeng.cookie";
o.Cookie.HttpOnly = true;
o.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});
在方法:Configure中添加如下代码:
app.UseCookiePolicy();
2、SESSION的开启
在Startup.cs的类中,方法:ConfigureServices中添加如下代码:
services.AddDistributedMemoryCache();
services.AddSession();
在方法:Configure中添加如下代码:
app.UseSession();
3、API返回JSON值是,使用驼峰命名规则(MVC默认)时的解决方法
在Startup.cs的类中,方法:ConfigureServices中添加如下代码:
services.AddMvc().AddJsonOptions(opt =>
{
opt.JsonSerializerOptions.PropertyNamingPolicy =null;
});
四、IIS部署
1、下载IIS环境支持:
下载地址:https://dotnet.microsoft.com/download/dotnet-core,版本选择:Hosting Bundle。安装成功后,在IIS模块下出现如下图内容:
2、IIS设置
添加网站后,在应用程序池中,要特别设置为无托管代码,因为.NETCORE不需要FRAMEWORK的支持: