常见文件与扩展名含义(速查)
下面按「你在仓库里会摸到的」优先级整理;并非 .NET 生态里每一个后缀(如 .vb、.fs 等仅略提)。
源代码与标记
| 扩展名 / 模式 | 含义 |
|---|---|
.cs |
C# 源码。一个文件通常对应一个类型(类/接口/记录等),也可放 Program.cs 入口。 |
*.Designer.cs |
设计器生成或部分类(partial)的另一半,少手改。 |
*.g.cs |
代码生成器产出(如源生成器),不要手改,重新生成会覆盖。 |
.cshtml |
Razor:HTML + C# 混排,多用于 MVC/Razor Pages 视图。 |
_ViewStart.cshtml / _ViewImports.cshtml |
视图全局布局与命名空间/using 导入,名字约定以下划线开头。 |
.razor |
Blazor 组件(浏览器里跑 WebAssembly 或服务端渲染)。 |
.xaml |
WPF / MAUI / WinUI 等 UI 声明式标记(做桌面/跨平台客户端时常见)。 |
.resx |
资源文件(多语言字符串、图片等),编译成嵌入资源。 |
.http / .rest |
VS / Rider 的 HTTP 客户端文件,用来手写请求测 API(类似 Postman 片段)。 |
项目、解决方案与构建
| 扩展名 | 含义 |
|---|---|
.csproj |
C# 项目文件:目标框架、包引用、编译项、全局配置等;角色接近 package.json + 构建脚本。 |
.sln |
解决方案:多个 .csproj(及杂项)的容器;类似 monorepo 里一个「工作区」入口。 |
.slnx |
新版可选解决方案格式(XML/简化结构),工具链逐步支持。 |
Directory.Build.props / Directory.Build.targets |
放在目录树上级,给下面所有子项目统一注入 MSBuild 属性/目标。 |
.props / .targets |
MSBuild 属性与任务片段,常被包或解决方案复用。 |
global.json |
指定本目录使用的 SDK 版本(团队对齐版本时常用)。 |
nuget.config |
NuGet 源、私有源、包路径等(类似 .npmrc 的一部分职责)。 |
packages.lock.json |
包锁定文件(启用锁定后),类似 package-lock.json。 |
.editorconfig |
缩进、命名风格等,跨编辑器一致(前端也常用)。 |
配置(运行与开发)
| 文件名 | 含义 |
|---|---|
appsettings.json |
默认配置(连接字符串、日志级别、自定义键)。 |
appsettings.{Environment}.json |
按环境覆盖,如 Development、Production。 |
secrets.json(用户机密) |
开发机敏感配置,不进 Git,路径由工具管理。 |
Properties/launchSettings.json |
本地调试:端口、环境变量 ASPNETCORE_ENVIRONMENT、IIS Express 配置等。 |
web.config |
部署在 IIS 时常见:ASP.NET Core 模块(ANCM)与 Kestrel 衔接;本地 Kestrel 直跑可能不需要。 |
编译与发布产物(一般在 bin/ / obj/ / publish/)
| 扩展名 | 含义 |
|---|---|
.dll |
程序集(库或可执行入口的载体),.NET 主要交付形态。 |
.exe |
Windows 可执行入口;自包含发布时常有;Linux 上可能是无扩展名的可执行文件。 |
.pdb |
调试符号:堆栈行号、局部变量名;发布到生产可选是否带上(便于分析崩溃)。 |
.xml(与 DLL 同名) |
XML 文档注释导出,供 IDE 提示;可选。 |
.deps.json |
依赖清单:运行时解析依赖树用。 |
.runtimeconfig.json |
运行时版本、滚动更新策略等。 |
project.assets.json (obj/ 内) |
NuGet 还原结果,勿手改。 |
测试与其它语言(略)
| 扩展名 | 含义 |
|---|---|
.csproj 中带 *Tests* 的项目 |
单元/集成测试,常用 xUnit / NUnit / MSTest。 |
.fs / .fsproj |
F# 语言与项目。 |
.vb / .vbproj |
Visual Basic。 |
命名习惯(和「文件名含义」一起看)
- PascalCase :公开类型、方法、属性名(
UserController)。 - 接口 :常
I前缀 (IUserRepository)。 - 私有字段 :常见
_camelCase或camelCase(团队规范为准)。 - 异步方法 :习惯
Async后缀 (GetUserAsync)。 - EF Core 迁移 :
Migrations/下带时间戳的类名描述 schema 变更;由 CLI 生成,手动改需谨慎。