为何Windows11的PowerShell中执行dotnet new命令失败?已装.NET SDK7.0
问题原因分析
核心原因:架构不匹配导致SDK无法被检测到
- 你安装的是x86(32位)版本的.NET 7.0.101 SDK,而Windows 11默认是64位系统,PowerShell默认启动64位进程。64位进程会优先读取
C:\Program Files\dotnet\下的x64版本dotnet.exe,这个文件对应的是.NET 6.0.9 Runtime(仅运行时,不包含SDK),因此执行dotnet new这类需要SDK支持的命令时会报错“未找到.NET SDK”。 - x86版本的.NET SDK实际安装路径是
C:\Program Files (x86)\dotnet\dotnet.exe,但64位PowerShell的PATH环境变量中,C:\Program Files\dotnet\的优先级高于C:\Program Files (x86)\dotnet\,所以不会优先调用x86版本的dotnet.exe。
辅助验证与补充说明
- 打开32位PowerShell(路径为
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe),执行命令:
应该能看到7.0.101版本的SDK,证明安装本身是成功的。dotnet --list-sdks - 你通过安装程序修改界面验证完成,仅能证明SDK已被安装,但无法验证当前运行的PowerShell进程是否能正确调用到对应的SDK版本。
内容的提问来源于stack exchange,提问作者Dallas Caley
相关产品推荐
相关产品推荐

