先创建空白解决方案并取消“将解决方案和项目放在同一目录中”,再依次添加uil、bll、dal三个项目,统一目标框架;接着按uil→bll→dal顺序建立引用,严禁uil直引dal;最后规范命名空间、项目名与文件夹名,并可选添加shared共享层。

要在Visual Studio中搭建清晰、可维护、符合团队规范的项目结构,不能只靠默认生成的单项目骨架——尤其当业务逻辑变复杂、分层职责需隔离、或未来要接入CI/CD和单元测试时,初始结构一旦定型就很难大改。
新建解决方案并命名
启动 Visual Studio → 点击“创建新项目” → 在模板筛选区选择任意基础类型(如“类库(.NET Standard)”或“控制台应用(C#)”)→ 点击“下一步”。
在“配置新项目”页中,【务必取消勾选“将解决方案和项目放在同一目录中”】。这一步决定后续能否干净分离解决方案容器与具体项目,若勾选,所有项目会挤在同一个文件夹下,后期添加新项目或重构分层时极易混乱。
输入解决方案名称(如“MyEnterpriseSolution”),选择保存路径(建议用英文无空格路径,如 C:\repos\MyEnterpriseSolution),点击“创建”。
按分层架构添加多个项目
解决方案建好后,右键解决方案节点 → 选择“添加” → “新建项目”。重复此操作,依次添加以下三类项目:
方法一:表示层(UI)→ 选“Windows 窗体应用”或“.NET MAUI 应用”,命名为 MyApp.UIL;
方法二:业务逻辑层(BLL)→ 选“类库(.NET 6+)”,命名为 MyApp.BLL;
方法三:数据访问层(DAL)→ 同样选“类库(.NET 6+)”,命名为 MyApp.DAL。
注意:三个项目必须使用相同的目标框架(如 .NET 6.0 或 .NET 8.0),否则项目引用会失败且无法编译。
Visual Studio 18.8.1 官方固定版本安装引导程序,当前条目使用微软发布历史中的 Professional Web Installer,适合旧项目兼容、环境回退、复现特定构建链和排查版本差异等场景。
建立项目间引用关系
第一步:右键 MyApp.UIL 项目 → “添加项目引用” → 勾选 MyApp.BLL → 确定;
第二步:右键 MyApp.BLL 项目 → “添加项目引用” → 勾选 MyApp.DAL → 确定;
第三步:确认 MyApp.UIL 不直接引用 MyApp.DAL —— 这是分层架构的关键约束,违反会导致依赖倒置,破坏可测试性和解耦性。
此时打开每个项目的 .csproj 文件,应能看到类似 <projectreference include="..\MyApp.BLL\MyApp.BLL.csproj"></projectreference> 的引用项,路径为相对路径,确保跨机器迁移时仍有效。
统一命名空间与根文件夹结构
双击打开 MyApp.BLL 项目下的任意 .cs 文件 → 查看顶部命名空间声明(如 namespace MyApp.BLL)→ 若不一致,手动改为与项目名完全匹配;
同理检查 MyApp.DAL 和 MyApp.UIL 中所有类的命名空间。
接着,在解决方案资源管理器中,右键每个项目 → “重命名”,确保文件夹名、项目名、程序集名、默认命名空间四者严格一致。
这一步不做,后续 NuGet 包发布、XML 文档生成、甚至某些 DI 容器扫描都会出错,且调试时堆栈显示的命名空间会混乱难读。
添加共享基础设施项目
右键解决方案 → “添加” → “新建项目” → 选择“类库(.NET 6+)”,命名为 MyApp.Shared;
将其设为公共契约中心:放入 CommonException.cs、IRepository<t>.cs</t>、AppSettings.cs 等跨层复用类型;
然后让 MyApp.BLL 和 MyApp.DAL 都引用它,但 MyApp.UIL 不得引用——保持上层对共享层的“只读感知”。










