You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2019创建Blazor应用后目标框架异常问题

问题解答

核心结论

不是Blazor无法使用.NET Core,这是** .NET Core 3.1 时代 Blazor WebAssembly 的设计特性**,属于正常现象。

原因分析

  • .NET Core 3.1 发布时,Blazor WebAssembly 刚进入正式阶段,当时浏览器端的 WebAssembly 运行时还无法支持完整的 .NET Core Runtime,因此只能基于 .NET Standard 2.1 构建项目——这样既能保证 Blazor 组件在浏览器环境运行,也能在服务器端等其他 .NET 环境复用。
  • 你选择 .NET Core 3.1 后项目自动设为 .NET Standard 2.1,是模板的默认行为,因为这是当时 Blazor WebAssembly 唯一可行的目标框架。
  • 非 Blazor 项目能看到 .NET Core 选项,是因为它们的运行时模型不同(比如控制台、ASP.NET Core Web 项目直接基于 .NET Core Runtime 运行),和 Blazor WebAssembly 的浏览器端运行逻辑不冲突。

解决方式

若坚持使用 .NET Core 3.1 开发 Blazor WebAssembly

当前项目配置是正确的,无需修改。你仍然可以用 .NET Core 3.1 SDK 构建、运行项目,尽管项目文件的 <TargetFramework> 是 netstandard2.1,但这完全符合该版本 Blazor 的设计要求。

若想让项目直接目标 .NET Core(或后续版本)

需要升级到 .NET 5 及以上版本:从 .NET 5 开始,Blazor WebAssembly 已支持直接目标 .NET 5/6/7/8 等版本,项目的 <TargetFramework> 会对应设为 net5.0/net6.0 等,不再依赖 .NET Standard。操作步骤:

  • 安装对应版本的 .NET SDK(比如 .NET 6 SDK)
  • 新建项目时选择对应 .NET 版本;或修改现有项目的 .csproj 文件,将 <TargetFramework> 改为 net6.0(或更高版本),同时更新所有 NuGet 包到对应 .NET 版本的兼容版本。

内容的提问来源于stack exchange,提问作者noobnoobie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 15:40:24