如何启动拆分代码与视图的.NET Core 6站点?
解决.NET Core 6拆分代码与视图项目的启动问题
核心问题根源
代码项目作为控制台应用,默认不会自动扫描类库项目中的视图文件;视图项目是类库类型,本身没有入口点和服务配置,无法独立启动。需要让代码项目能定位到视图项目的视图资源,同时以代码项目作为启动项运行。
具体解决步骤
1. 配置代码项目的视图查找路径
在代码项目的Program.cs中,修改AddControllersWithViews的配置,添加视图项目的视图位置:
builder.Services.AddControllersWithViews() .AddRazorOptions(options => { // 替换为你的视图项目名称,路径根据实际项目结构调整 options.ViewLocationFormats.Add("/../YourViewProject/Views/{1}/{0}.cshtml"); options.ViewLocationFormats.Add("/../YourViewProject/Views/Shared/{0}.cshtml"); });
如果项目使用了区域(Areas),还需补充区域视图的路径:
options.AreaViewLocationFormats.Add("/../YourViewProject/Areas/{2}/Views/{1}/{0}.cshtml"); options.AreaViewLocationFormats.Add("/../YourViewProject/Areas/{2}/Views/Shared/{0}.cshtml");
2. 调整视图项目的编译与输出设置
- 右键视图项目 → 属性 → 生成 → 勾选将 Razor 视图编译到程序集,确保视图被正确编译。
- 选中视图项目
Views文件夹下所有.cshtml文件,右键 → 属性 → 将复制到输出目录设置为如果较新则复制,保证视图文件能同步到输出目录。
3. 设置代码项目为启动项
在解决方案资源管理器中,右键代码项目 → 选择设置为启动项目,启动后即可正常加载视图项目中的视图。
额外注意事项
- 确保两个项目的目标框架均为.NET Core 6,避免版本兼容性问题。
- 如果视图路径配置后仍找不到视图,可以通过绝对路径测试,确认路径正确性后再调整为相对路径。
内容的提问来源于stack exchange,提问作者user18928007
相关产品推荐
相关产品推荐

