一、項目升級
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的支持: