升级到 .NET Core 2.1
从 .NET Core 2.0 升级到 .NET Core 2.1
最近在翻译 《Pro ASP.NET Core MVC 2》这本书,书中的示例是以 .NET Core 2.0 为基础的,.NET Core 2.1 已经发布了,在你安装了当前的 .NET Core 2.1 之后,虽然核心的代码保持了一致性,但是,部分代码还是会发现无法与书中保持一致,这里列出从 .NET Core 2.0 升级到 .NET Core 2.1 的关键点,供读者参考。
.NET Core 2.0 中的项目文件
在 .NET Core 2.0 时代,项目文件中的 TargetFramework
设置为 netcoreapp2.0
,应用必须引用的库为 Microsoft.AspNetCore.All
。
如果我们还需要使用 Entity Framework 的工具,还需要添加工具引用。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
</Project>
但是,随着 .NET Core 2.1
的发布,微软已经建议不再使用 Microsoft.AspNetCore.All
这个包。
We recommend applications targeting ASP.NET Core 2.1 and later use the Microsoft.AspNetCore.App rather than this package. See Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App in this article.
对于面向 ASP.NET Core 2.1 及更高版本的应用程序,建议使用 Microsoft.AspNetCore.App 而不是此包。见文内的 从 Microsoft.AspNetCore.All 迁移到 Microsoft.AspNetCore.App
来源:Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0
关于 Microsoft.AspNetCore.App
在 .NET Core 2.1
中,项目文件中的TargetFramework
设置为 netcoreapp2.1
,而引用的包则变成 Microsoft.AspNetCore.App
。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
而且,Microsoft.EntityFrameworkCore.Tools.DotNet
已经包含于 Microsoft.AspNetCore.App
之内,不再需要单独安装。
The .NET Core SDK version 2.1.300 and newer includes dotnet ef commands that are compatible with EF Core 2.0 and later versions. Therefore if you are using recent versions of the .NET Core SDK and the EF Core runtime, no installation is required and you can ignore the rest of this section.
On the other hand, the dotnet ef tool contained in .NET Core SDK version 2.1.300 and newer is not compatible with EF Core version 1.0 and 1.1. Before you can work with a project that uses these earlier versions of EF Core on a computer that has .NET Core SDK 2.1.300 or newer installed, you must also install version 2.1.200 or older of the SDK and configure the application to use that older version by modifying its global.json file. This file is normally included in the solution directory (one above the project). Then you can proceed with the installlation instruction below.
.NET Core SDK version 2.1.300 及更新版本包含了兼容 EF Core 2.0 及更新版本的 dotnet ef 命令行工具。因此,如果您使用最新版本的 .NET Core SDK 和 EF Core 运行时,将不再需要安装此工具,您可以忽略剩下的步骤。
从另一个方面来说,包含于 .NET Core SDK version 2.1.300 及更新版本的 dotnet ef 工具不兼容 EF Core 1.0 和 1.1。在您于安装了 .NET Core SDK 2.1.300 或更新版本的计算机上,使用这些包含早期版本的 EF Core 项目之前,您必须还要安装 2.1.200 或者更早的 SDK ,并通过修改项目的 global.json 来配置应用程序使用早期版本。该文件通常位于解决方案文件夹中(项目的上一级)。然后可以按照如下安装指导处理。
来源:EF Core .NET Command-line Tools
从 Microsoft.AspNetCore.All 迁移到 Microsoft.AspNetCore.App
下面所列出的内容包含于 Microsoft.AspNetCore.All
但不包含于 Microsoft.AspNetCore.App
包内。
Microsoft.AspNetCore.ApplicationInsights.HostingStartup
Microsoft.AspNetCore.AzureAppServices.HostingStartup
Microsoft.AspNetCore.AzureAppServicesIntegration
Microsoft.AspNetCore.DataProtection.AzureKeyVault
Microsoft.AspNetCore.DataProtection.AzureStorage
Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv
Microsoft.AspNetCore.SignalR.Redis
Microsoft.Data.Sqlite
Microsoft.Data.Sqlite.Core
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Sqlite.Core
Microsoft.Extensions.Caching.Redis
Microsoft.Extensions.Configuration.AzureKeyVault
Microsoft.Extensions.Logging.AzureAppServices
Microsoft.VisualStudio.Web.BrowserLink
在从 Microsoft.AspNetCore.All
迁移到 Microsoft.AspNetCore.App
时,如果您的应用使用了来自上述包或者这些包所引入的包中所提供的 API,在您的项目中添加其引用。
不会隐式包含非 Microsoft.AspNetCore.App
依赖项的上述包的任何依赖项。 例如:
StackExchange.Redis
作为Microsoft.Extensions.Caching.Redis
的依赖Microsoft.ApplicationInsights
作为Microsoft.AspNetCore.ApplicationInsights.HostingStartup
的依赖
从 .NET Core 2.0 迁移到 .NET Core 2.1
打开项目文件 ( *.csproj, *.vbproj, 或者 *.fsproj 文件)。
将 target framework 值从
netcoreapp2.0
修改为netcoreapp2.1
。目标框架由元素<TargetFramework>
或者<TargetFrameworks>
定义。例如,将
<TargetFramework>netcoreapp2.0</TargetFramework>
修改为<TargetFramework>netcoreapp2.1</TargetFramework>
。删除适用于 .NET Core 2.1 SDK (v 2.1.300 及更新版本) 中捆绑的工具的
<DotNetCliToolReference>
引用。这些引用包括:dotnet-watch (Microsoft.DotNet.Watcher.Tools)
dotnet-user-secrets (Microsoft.Extensions.SecretManager.Tools)
dotnet-sql-cache (Microsoft.Extensions.Caching.SqlConfig.Tools)
dotnet-ef (Microsoft.EntityFrameworkCore.Tools.DotNet)
在从前的 .NET Core SDK 版本中,项目中的这些工具引用如下所示:
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
由于这些条目不再被 .NET Core SDK 所使用,如果您仍旧在项目中使用了这些打包的工具,您将看到类似如下所示的警告:
The tool 'Microsoft.EntityFrameworkCore.Tools.DotNet' is now included in the .NET Core SDK. Here is information on resolving this warning.
从项目文件的
<DotNetCliToolReference>
中删除这些引用可以修复该问题。
来源:Update the project file to use 2.1 versions
升级到 .NET Core 2.1的更多相关文章
- ASP.NET Core 实战:将 .NET Core 2.0 项目升级到 .NET Core 2.1
一.前言 最近一两个星期,加班,然后回去后弄自己的博客,把自己的电脑从 Windows 10 改到 Ubuntu 18.10 又弄回 Windows 10,原本计划的学习 Vue 中生命周期的相关知 ...
- Net Core2.0 升级到.Net Core 2.1
1. 安装新 .Net Core SDK 2.1 2. 升级VS.net 到15.7, 这个版本极其不好用,IIS打中文会自动退出,但现在也没办法降级了.只能等微软打补丁. 3. 对于面向 ASP.N ...
- 2019 vs 如何升级到.net core 3.0 版本
写在前面 看到微软的官网都已经更新.NET CORE 3.0的版本了.发现自己的还是.NET CORE 2.1X 的版本. 那应该如果升级到.NET CORE 3.0 的版本呢? 思考 [1]首先,我 ...
- [WPF]是时候将WPF控件库从.Net Framework升级到.NET Core 3.1
1. 升级到Core的好处 去年中我曾考虑将我的控件库项目Kino.Toolkit.Wpf升级到.NET Core,不过很快放弃了,因为当时.NET Core是预览版,编译WPF还需要使用最新的Vis ...
- ASP.NET 5 RC1 升级 ASP.NET Core 1.0 RC2 记录
升级文档: Migrating from DNX to .NET Core Migrating from ASP.NET 5 RC1 to ASP.NET Core 1.0 RC2 Migrating ...
- .NET跨平台之旅:升级ASP.NET Core示例站点
ASP.NET Core示例站点网址:http://about.cnblogs.com/ 首先安装最新版的 .NET Core 运行环境,从 https://github.com/dotnet/cli ...
- Centos升级安装.Net core 1.1
VS2017已经发布了一个多月了,最期待的功能就是.net core的更新,终于去掉了繁琐了project.json的文件配置.我们尝试打开一个VS2015的.net core项目,会自动升级至.ne ...
- 升级 asp.net core 1.1 到 2.0 preview
Upgrading to .NET Core 2.0 Preview 1 更新 依赖的类库 改为 标准库 2 web app 更改 csproj 文件---升级版本 <PropertyGrou ...
- dotnet core项目升级到 .net core 2.0
这几天无疑我们已经让.net core 2.0正式版发布的消息刷屏,这次发布整整提前了一个月的时间,关于具体的发布信息,可以去看善友大神的博客,.NET Core 2.0 正式发布信息汇总,废话不多说 ...
随机推荐
- exp迁移测试库10.2.0.5
目的: 将一套10.2.0.5的UP-UNIX系统的数据,迁移到一台Windows环境下. 迁移方案:由于不同的操作系统,为了方便迁移,只是测试,使用EXP/IMP方式. 迁移流程: 一.源端导出 1 ...
- Debug程序的使用
一.什么是Debug程序: Debug是DOS, Windows(但是Win7 64位没有,8 10不清楚.)都提供的实模式程序的调试工具, 使用它,可以查看CPU各种寄存器中的内容,内存的情况和在机 ...
- Python:从入门到实践--第七章--用户输入和while循环-练习
#1.编写一个程序,询问用户要租赁什么样的汽车,并打印. car = input("What's kind of cars dou you want to rent?,sir:") ...
- tp3.2小结(1)
入口文件:index.php目录结构:核心,Thinkphp 公共资源,public jq 上传的图片等 应用目录,application 房模块 common:基于模块的公共目录,公共函数命名:类: ...
- informix 常见系统表
systables:描述数据库中的每张表:syscolumns:描述数据库中表的列:sysindexes:描述数据库中列的索引:sysfragments:存储了分段索引的片段信息:sysfragaut ...
- ROS * 了解学习urdf的内容格式及编写
<?xml version="1.0" ?> 声明文件使用xml描述 <robot name="robot_name">定义这是一个机器 ...
- pytorch dataloader num_workers
https://discuss.pytorch.org/t/guidelines-for-assigning-num-workers-to-dataloader/813/5 num_workers 影 ...
- JZ2440支持设备树(1)-添加设备树之后kernel的启动参数跟dts里面不一致
在做之前参考了如下博客文章,再次非常感谢: http://www.cnblogs.com/pengdonglin137/p/6241895.html Uboot中需要在config中添加如下宏: #d ...
- Python基础:十一、流程控制(if语句、while循环)
一.流程控制——if循环 1.第一种语法: if条件: #引号是将条件与结果分开 结果1 #四个空格,或者一个tab键,这个是告诉程序满足条件的话,运行这个结果 结果2 #如果条件是真(True)执行 ...
- thinkphp5.0.22远程代码执行漏洞分析及复现
虽然网上已经有几篇公开的漏洞分析文章,但都是针对5.1版本的,而且看起来都比较抽象:我没有深入分析5.1版本,但看了下网上分析5.1版本漏洞的文章,发现虽然POC都是一样的,但它们的漏洞触发原因是不同 ...