升级Microsoft.NetCore.App 2.0至2.1.4遇SDK问题如何解决?
这个问题我之前碰到过不少次,本质是.NET Core 2.x版本开始,Microsoft.NetCore.App包是由SDK隐式引用和管理的,不能直接通过NuGet包管理器修改版本,必须调整项目的框架配置或者SDK版本来解决。给你一步步来:
第一步:确认安装了对应版本的.NET Core SDK
你说已经装了最新版,但还是要确认下有没有匹配2.1.4 runtime的SDK——Microsoft.NetCore.App 2.1.4对应的是**.NET Core SDK 2.1.302**及以上版本(属于2.1系列的SDK)。打开命令提示符,输入:
dotnet --list-sdks
如果输出里没有2.1.x的SDK,得去安装对应版本(注意要和项目目标框架匹配,别装成更高的3.x或5.x,除非你打算升级到更高框架)。
第二步:手动编辑项目文件(.csproj)
这是核心操作,因为NuGet管不了隐式引用的包,必须直接改项目配置:
在Visual Studio里右键你的项目,选编辑项目文件(或者在解决方案资源管理器里点“显示所有文件”,找到.csproj直接打开)。
找到类似这样的代码块:
<PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup>把
netcoreapp2.0改成netcoreapp2.1,这样项目就会目标定位到.NET Core 2.1框架,SDK会自动引用对应版本的Microsoft.NetCore.App。如果你非要固定用2.1.4这个特定版本,就在PropertyGroup里加一行:
<PropertyGroup> <TargetFramework>netcoreapp2.1</TargetFramework> <RuntimeFrameworkVersion>2.1.4</RuntimeFrameworkVersion> </PropertyGroup>要是只是想用上2.1系列的兼容版本,这一步可以跳过,SDK会自动选合适的版本。
保存文件后,Visual Studio会自动触发依赖包恢复,等它完成就行。
第三步:清理重建项目,清除缓存
有时候旧的编译缓存会搞事情,做一下这些操作:
- 右键解决方案,选清理解决方案
- 再右键解决方案,选重建解决方案
- 也可以手动删掉项目目录下的
bin和obj文件夹,然后重新生成项目。
第四步:检查Visual Studio的.NET Core工具组件
确保你的VS 2017 15.7.2装了对应的.NET Core工具:
- 打开Visual Studio安装器,选“修改”你的VS 2017实例。
- 切换到“单个组件”标签,找到“.NET Core 2.1开发工具”(或对应的版本),确认它已经勾选,然后点“修改”完成安装。
做完这些步骤,你的项目应该就能顺利升级到Microsoft.NetCore.App 2.1.4了。
内容的提问来源于stack exchange,提问作者Guille

