我当前用 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
1
INCerry 157 天前
安装个 SDK 试试,我看你只装了 runtime
https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-8.0.302-windows-x64-installer |
2
iLoveSS 157 天前
|
3
huzhikuizainali OP @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 |
4
iLoveSS 157 天前
@huzhikuizainali installer 里的 sdk 就是.net sdk. 不过一般不这么装,在 installer 最开始选工作负荷(workload)的时候,选.net 桌面开发或者相关 Asp.net 开发都会默认附带.net sdk. 很少独立选 sdk.
另外,如果你只用 vscode 开发的话, 下网站上的 sdk 独立安装也就够了. vs 里带 sdk 跟 vs 是绑定的, 你单独下载安装的 sdk 有可能会和 vs 版本不匹配用不了. |
5
huzhikuizainali OP @iLoveSS 多谢指教。工作负荷(workload)的时候,选.net 桌面开发或者相关 Asp.net 开发都会默认附带.net sdk
----------- 如果通过这种方式变相安装.net sdk ,那么开发者是否没有.net sdk 版本选择的余地了?如果客户由于历史原因,要求只能用较旧的.net sdk 版本,那怎么办?这是就算操作系统里有较旧版本的 SDK ,也会因为“vs 里带 sdk 跟 vs 是绑定的, 你单独下载安装的 sdk 有可能会和 vs 版本不匹配用不了” 而无济于事! |
6
iLoveSS 157 天前 1
@huzhikuizainali sdk 是开发工具并附带了同版本的 runtime,而 runtime 只是是运行环境,别弄错了.
高版本的 sdk 可以编译旧版本的程序,但是运行该旧版程序需要对应版本的 runtime. 所以 sdk 装一套用新的就可以了,把 targetframework 设置成你的目标(如果不使用默认的话),并根据需要安装其它版本 runtime. |