V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huzhikuizainali
V2EX  ›  .NET

为什么我已经在 Visual Studio 中安装了.Net 8.0,但是命令行显示的版本仍然是 6.0.31?

  •  
  •   huzhikuizainali · 157 天前 · 1500 次点击
    这是一个创建于 157 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我当前用 Visual Studio 进行 C#代码调试,希望学习一下单元测试相关知识。今天刚刚安装了 Visual Studio ,并“单独”安装了.Net 8.0 (见下方截图)。但是安装成功以后我运行 dotnet --info 显示结果如下: 可以看到 Host:Version: 6.0.31 这与我刚刚安装好 Visual Studio ,没有单独安装.Net 8.0 时的情况是一样的。

    我之前使用 VS code 时是单独从微软网站上下载安装.Net 8.0 。安装以后运行 dotnet --info ,Host:Version: 当时显示的是 8.0 。 请问我如何才能将.Net 版本升级到 8.0 呢?

    global.json file:
      Not found
    
    Host:
      Version:      6.0.31
      Architecture: x64
      Commit:       e2ca2f8a1c
    
    .NET SDKs installed:
      No SDKs were found.
    
    .NET runtimes installed:
      Microsoft.AspNetCore.App 8.0.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
      Microsoft.NETCore.App 6.0.31 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.NETCore.App 8.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      Microsoft.WindowsDesktop.App 6.0.31 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
      Microsoft.WindowsDesktop.App 8.0.6 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
    
    Download .NET:
      https://aka.ms/dotnet-download
    
    Learn about .NET Runtimes and SDKs:
      https://aka.ms/dotnet/runtimes-sdk-info
    

    pkBekv9.png

    6 条回复
    INCerry
        1
    INCerry  
       157 天前
    iLoveSS
        2
    iLoveSS  
       157 天前
    用 vs 开发.net 的话,装 vs 自带的 sdk 开发环境, 功能列表里有个.net sdk.

    你图里勾的这个是 runtime,运行环境.
    huzhikuizainali
        3
    huzhikuizainali  
    OP
       157 天前
    @iLoveSS 谢谢你的回复,下面 GPT 的答案与你的方案有一致性:
    GPT:在 Visual Studio Installer 中勾选 .NET 8.0 运行时并不一定意味着你已经安装了 .NET 8.0 SDK 。运行时和 SDK 是不同的组件:

    .NET 运行时:用于运行 .NET 应用程序,但不包含开发和编译应用程序所需的工具。
    .NET SDK:包括运行时,以及用于开发和编译 .NET 应用程序的工具。
    要确认你是否安装了 .NET 8.0 SDK ,可以按照以下步骤操作:

    检查 Visual Studio Installer:

    打开 Visual Studio Installer 。
    选择你的 Visual Studio 实例,点击“修改”。
    在“单个组件”选项卡中,搜索 .NET 8.0 SDK 。
    确保已勾选 .NET 8.0 SDK 。

    -------------------问题:在 Installer 中搜索不到“ .NET 8.0 SDK”! 只能搜索到.NET SDK 。可是.NET SDK 有好几个版本。Installer 怎么知道我要安装的是 8.0 ?还是 9.0 ?或者他会根据我安装的其他选项自动决定安装那个版本的 SDK ?
    https://dotnet.microsoft.com/zh-cn/download/dotnet
    iLoveSS
        4
    iLoveSS  
       157 天前
    @huzhikuizainali installer 里的 sdk 就是.net sdk. 不过一般不这么装,在 installer 最开始选工作负荷(workload)的时候,选.net 桌面开发或者相关 Asp.net 开发都会默认附带.net sdk. 很少独立选 sdk.

    另外,如果你只用 vscode 开发的话, 下网站上的 sdk 独立安装也就够了. vs 里带 sdk 跟 vs 是绑定的, 你单独下载安装的 sdk 有可能会和 vs 版本不匹配用不了.
    huzhikuizainali
        5
    huzhikuizainali  
    OP
       157 天前
    @iLoveSS 多谢指教。工作负荷(workload)的时候,选.net 桌面开发或者相关 Asp.net 开发都会默认附带.net sdk
    -----------
    如果通过这种方式变相安装.net sdk ,那么开发者是否没有.net sdk 版本选择的余地了?如果客户由于历史原因,要求只能用较旧的.net sdk 版本,那怎么办?这是就算操作系统里有较旧版本的 SDK ,也会因为“vs 里带 sdk 跟 vs 是绑定的, 你单独下载安装的 sdk 有可能会和 vs 版本不匹配用不了” 而无济于事!
    iLoveSS
        6
    iLoveSS  
       157 天前   ❤️ 1
    @huzhikuizainali sdk 是开发工具并附带了同版本的 runtime,而 runtime 只是是运行环境,别弄错了.

    高版本的 sdk 可以编译旧版本的程序,但是运行该旧版程序需要对应版本的 runtime.

    所以 sdk 装一套用新的就可以了,把 targetframework 设置成你的目标(如果不使用默认的话),并根据需要安装其它版本 runtime.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:22 · PVG 16:22 · LAX 00:22 · JFK 03:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.