关键在于选对模板、装对工作负载、配对框架版本:未安装“asp.net 和 web 开发”工作负载则无模板;搜索时须设语言为c#、平台为windows、项目类型为web;创建时需匹配已安装的.net sdk版本,如dotnet --list-sdks显示9.0.100,则选.net 9.0。

Visual Studio 创建 ASP.NET Core C# 项目,关键不是“能不能建”,而是选对模板、装对工作负载、配对框架版本——三者缺一不可。如果新建项目时找不到 ASP.NET Core Web App (Razor Pages) 或 ASP.NET Core Web API 等模板,90% 是因为 ASP.NET 和 Web 开发工作负载没装。
确认已安装 ASP.NET 和 Web 开发工作负载
没这个工作负载,VS 根本不显示任何 ASP.NET Core 模板,搜索也白搭。
- 打开 Visual Studio → 顶部菜单栏选择 工具 > 获取工具和功能,启动安装程序
- 在工作负载列表中,勾选 ASP.NET 和 Web 开发(注意不是“.NET 桌面开发”或“Azure 开发”)
- 点击 修改,等待安装完成(可能需重启 VS)
- 装完后,
dotnet --list-sdks在终端中应能看到类似8.0.400、9.0.100或10.0.0的 SDK 版本(取决于你装的 .NET 版本)
创建项目时必须匹配的三个筛选条件
VS 的模板搜索依赖语言 + 平台 + 项目类型三重过滤,漏一个就找不到目标模板。
-
语言:必须选
C#(不是“所有语言”或“C++”) -
平台:选
Windows(即使你最终部署到 Linux,本地开发仍需 Windows 平台筛选) -
项目类型:选
Web(不是“桌面”或“云”) - 然后在搜索框输入
web app或razor,就能看到ASP.NET Core Web App (Razor Pages)和ASP.NET Core Web API等真实可用模板
配置新项目时容易被忽略的框架选项
“其他信息”窗口里的 .NET x.x 下拉框不是摆设,它直接决定项目能否运行、能否引用最新 API。
- VS 默认可能推荐
.NET 10.0(LTS),但如果你机器只装了.NET 9.0SDK,选 10.0 会导致创建失败或后续dotnet build报错NETSDK1045 - 建议先运行
dotnet --list-sdks,再选列表中存在的最高稳定版(如9.0.100对应.NET 9.0) - “身份验证类型”选
无最安全;选“单个帐户”会自动加Microsoft.AspNetCore.Identity.EntityFrameworkCore等包,新手易因数据库迁移卡住 - “启用容器支持”默认关掉,Dockerfile 和
docker-compose.yml会干扰初学者理解基础请求生命周期
项目创建后立刻验证的两件事
别急着写代码,先确认环境是否真就绪。
- 打开
Solution Explorer→ 展开Pages→ 双击Index.cshtml,确保能正常渲染 Razor 语法(比如有@page和@model) - 右键项目 → 属性 → 查看
Target Framework是否与你选的 SDK 版本一致(如显示net9.0,而非netcoreapp3.1或空值) - 按
Ctrl+F5启动,浏览器打开https://localhost:xxxx而非报错HTTP Error 500.30或Failed to load resource—— 这说明 Kestrel 已监听且中间件链通
最常被跳过的一步是检查 .csproj 文件里有没有 <targetframework>net9.0</targetframework> 这行。有人点了 .NET 9.0 却发现项目实际生成的是 net6.0,就是因为向导中途崩溃后 fallback 到旧版本,而 UI 没提示。











