为何未安装.NET 7 SDK时Visual Studio 2022仍能构建.NET 7项目?
问题描述
我有一个包含多个项目的解决方案,所有项目的配置如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net7.0</TargetFramework>
我刚将Visual Studio 2022升级至17.8.0版本,随后通过命令检查SDK安装情况:
c:\>dotnet --list-sdks 6.0.125 [C:\Program Files\dotnet\sdk] 8.0.100 [C:\Program Files\dotnet\sdk]
输出显示.NET 7 SDK已不再安装,但我打开并重建所有项目后却成功完成,无任何警告,且输出目录下的net7.0子文件夹中存在新的构建产物。
请问为何未安装.NET 7 SDK时,Visual Studio 2022仍能构建我的.NET 7目标项目?我忽略了什么?
原因分析
- Visual Studio自带专属捆绑SDK:Visual Studio 2022在安装或升级时,会自带一套专属的.NET SDK,这套SDK不会出现在
dotnet --list-sdks的输出里——该命令仅检测全局安装的SDK。17.8.0版本的VS默认保留了对.NET 7项目的构建支持,调用自身捆绑的.NET 7相关组件就能完成构建。 - 工作负载包含构建必备组件:你的VS工作负载中可能安装了.NET 7的构建工具和运行时组件,这些组件不需要全局安装完整SDK,就能满足net7.0目标项目的编译、输出需求。
- 高版本SDK的向下兼容能力:你已安装的.NET 8 SDK具备向下兼容构建低版本目标框架项目的能力,不过这种场景通常会有版本提示,结合你无警告的情况,更核心的原因还是VS自带的专属捆绑SDK在起作用。
内容的提问来源于stack exchange,提问作者g.pickardou
相关产品推荐
相关产品推荐

