将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1 RC 1

今天微软发布了 .NET Core 2.1 RC 1 ,虽然只是 Release Candidate 版,但已经可以在生产环境中使用。

NET Core 2.1 RC is supported by Microsoft and can be used in production.

.NET Core 2.1 的性能大提升早让人垂涎三尺,看到这个消息后,忍不住今天就进行了升级。

主要升级步骤如下:

将 .csproj 项目文件中的 target framework 改为 netcoreapp2.1

<TargetFramework>netcoreapp2.1</TargetFramework>

将 Microsoft 开头的 nuget 包升级为 2.1.0-rc1-final  (正式版改为 2.1.0 ),System 开头的 nuget 包升级为 4.5.0-rc1(正式版改为 4.5.0)

<PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0-rc1-final" />
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.0-rc1" />

将 Microsoft.AspNetCore.All 更改为 Microsoft.AspNetCore.App

<PackageReference Include="Microsoft.AspNetCore.App" />

在 Program 中将 IWebHost 改为 IWebHostBuilder

public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
} public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}

在 Startup 中添加 SetCompatibilityVersion

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

更新 docker 镜像,将 asp.net core runtime 镜像 tag 改为 microsoft/dotnet:2.1-aspnetcore-runtime ,将 .net core sdk 镜像 tag 改为 microsoft/dotnet:2.1-sdk 。docker 部署成功后,容器中的 .net core runtime 信息如下

root@c44d5c57a02b:/app# dotnet --info

Host (useful for support):
Version: 2.1.0-rc1
Commit: eb9bc92051 .NET Core SDKs installed:
No SDKs were found. .NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.0-rc1-final [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.0-rc1-final [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.0-rc1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
上一篇:ZOJ2345Gold Coins 简单分块


下一篇:Activity详解四 activity四种加载模式