.NET Core 2控制台应用SDK节点下Microsoft.NETCore.App依赖警告原因咨询
我处理过不少类似的问题,这个警告大多和SDK版本或环境配置有关,哪怕你没手动碰过依赖项,也可能因为以下几种情况触发:
SDK版本不匹配:这是最常见的原因。你的项目指定了某个.NET Core 2.x的版本,但本地安装的SDK版本和它不对应。比如项目文件里
<TargetFramework>设的是netcoreapp2.1,但你本地只装了2.2的SDK,或者反过来。你可以打开项目的.csproj文件检查<TargetFramework>和<RuntimeFrameworkVersion>节点,再用命令行运行dotnet --list-sdks看看本地已安装的SDK版本列表,确认是否有项目需要的版本。global.json指定的SDK版本不对:如果你的项目目录或者上级目录存在
global.json文件,它会强制指定项目使用的SDK版本。如果这个文件里的sdk.version值是你本地没安装的版本,VS就会弹出警告。打开这个文件看看版本号,要么修改成本地有的版本,要么去安装对应的SDK。Visual Studio版本兼容性问题:较新的Visual Studio版本(比如VS2022)默认不再包含.NET Core 2.x的SDK,如果你用新VS打开旧的.NET Core 2项目,就会因为找不到对应SDK而触发警告。这种情况你需要手动下载安装.NET Core 2.x的SDK包。
间接依赖的版本冲突:虽然你没手动修改依赖,但项目的其他间接依赖可能拉取了和Microsoft.NETCore.App不兼容的版本,不过这种情况相对少见。你可以右键项目选择“管理NuGet程序包”,查看依赖项的版本冲突提示,看看有没有相关的冲突信息。
内容的提问来源于stack exchange,提问作者ProfK

