已安装 .NET 运行时,但程序仍提示未安装

已安装 .NET 运行时,但程序仍提示未安装

已安装 .NET 运行时,但程序仍提示未安装作者

Fournoas

写于 2025年2月5日

发布在 Using运行一个 C# 编写的程序,弹出如下提示:

实际上系统已经安装 .NET Runtime 8.0,不过还是尝试通过错误消息中的链接下载 .NET Desktop Runtime 8.0 并重新安装。再次运行程序,仍然提示以上错误。

当前系统情况如下:

通过 WinGet 安装了:

Microsoft.DotNet.Runtime.6

Microsoft.DotNet.Runtime.7

Microsoft.DotNet.Runtime.8

Microsoft.DotNet.Runtime.9

Microsoft.DotNet.DesktopRuntime.6

Microsoft.DotNet.DesktopRuntime.7

Microsoft.DotNet.DesktopRuntime.8

Microsoft.DotNet.DesktopRuntime.9

通过 Scoop 安装了 donet-sdk (9.0.102)

安装了 Visual Studio 2022 以及 .Net 桌面开发组件

用 which dotnet 查看 dotnet 命令的路径:

C:\Program Files\dotnet\dotnet.exe命令并非是 Scoop 安装的版本,应该是通过 Visual Studio 安装到系统的。

如果系统中没有安装 which 命令,可以用以下命令替代:

CMD:where dotnetPowerShell:(Get-Command dotnet).Source运行 dotnet --info 查看信息:

.NET SDK:

Version: 9.0.102

Commit: cb83cd4923

Workload version: 9.0.100-manifests.4a54b1a6

MSBuild version: 17.12.18+ed8c6aec5

运行时环境:

OS Name: Windows

OS Version: 10.0.19045

OS Platform: Windows

RID: win-x64

Base Path: C:\Program Files\dotnet\sdk\9.0.102\

已安装 .NET 工作负载:

没有要显示的已安装工作负载。

配置为在安装新清单时使用 loose manifests。

Host:

Version: 9.0.1

Architecture: x64

Commit: c8acea2262

.NET SDKs installed:

9.0.102 C:\Program Files\dotnet\sdk]

.NET runtimes installed:

Microsoft.AspNetCore.App 8.0.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]

Microsoft.AspNetCore.App 9.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]

Microsoft.NETCore.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Microsoft.NETCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Microsoft.NETCore.App 8.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Microsoft.NETCore.App 9.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Microsoft.WindowsDesktop.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Microsoft.WindowsDesktop.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Microsoft.WindowsDesktop.App 8.0.12 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Microsoft.WindowsDesktop.App 9.0.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found:

x86 [C:\Program Files (x86)\dotnet]

registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables:

DOTNET_ROOT [C:\scoop\apps\dotnet-sdk\current]

global.json file:

Not found

Learn more:

https://aka.ms/dotnet/info

Download .NET:

https://aka.ms/dotnet/download结果中可以发现,.Net 8.0 运行时确实已经安装了,默认的 .Net SDK 是 9.0 版本。从安装路径可以得知,这并非是 Scoop 安装的版本。也许是程序优先检测到了 .Net SDK 9.0 自带的运行时,而没有使用已安装的 .Net Runtime 8.0。

通过 Scoop 安装 .Net Runtime 8.0:

powershellscoop install versions/dotnet-sdk-lts再次用 which dotnet 查看 dotnet 命令的路径:

C:\scoop\apps\dotnet-sdk-lts\current\dotnet.exe已经是 Scoop 安装的版本了。

运行 dotnet --info 查看信息:

.NET SDK:

Version: 8.0.405

Commit: fb1830d421

Workload version: 8.0.400-manifests.c7afa696

MSBuild version: 17.11.9+a69bbaaf5

运行时环境:

OS Name: Windows

OS Version: 10.0.19045

OS Platform: Windows

RID: win-x64

Base Path: C:\scoop\apps\dotnet-sdk-lts\current\sdk\8.0.405\

已安装 .NET 工作负载:

配置为在安装新清单时使用 loose manifests。

没有要显示的已安装工作负载。

Host:

Version: 8.0.12

Architecture: x64

Commit: 89ef51c5d8

.NET SDKs installed:

8.0.405 [C:\scoop\apps\dotnet-sdk-lts\current\sdk]

.NET runtimes installed:

Microsoft.AspNetCore.App 8.0.12 [C:\scoop\apps\dotnet-sdk-lts\current\shared\Microsoft.AspNetCore.App]

Microsoft.NETCore.App 8.0.12 [C:\scoop\apps\dotnet-sdk-lts\current\shared\Microsoft.NETCore.App]

Microsoft.WindowsDesktop.App 8.0.12 [C:\scoop\apps\dotnet-sdk-lts\current\shared\Microsoft.WindowsDesktop.App]

Other architectures found:

x86 [C:\Program Files (x86)\dotnet]

registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables:

DOTNET_ROOT [C:\scoop\apps\dotnet-sdk-lts\current]

global.json file:

Not found

Learn more:

https://aka.ms/dotnet/info

Download .NET:

https://aka.ms/dotnet/download再次运行原来的程序,成功~

相关推荐