Visual Studio 2022中.NET Standard 2.0项目无法构建Razor CSHTML文件
解决.NET Standard 2.0类库存放CSHTML Razor文件的问题
核心问题根源
.NET Standard 2.0是通用类库标准,本身不具备Razor视图的编译和运行时支持,用普通.NET Standard类库存放CSHTML,必然会遇到模板找不到、编译失败的问题。
具体解决方案
切换到Razor类库项目类型
直接创建ASP.NET Core Razor类库(而非普通.NET Standard类库),这类项目专门为存放Razor视图、页面、组件设计,默认支持CSHTML模板识别和编译。如果需要兼容.NET Standard 2.0,后续再调整目标框架即可。修正.csproj配置(精简且正确)
不需要安装大量冗余包,保留核心依赖即可,以下是标准配置:<Project Sdk="Microsoft.NET.Sdk.Razor"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <AddRazorSupportForMvc>true</AddRazorSupportForMvc> </PropertyGroup> <ItemGroup> <!-- 版本统一用2.2.x,匹配.NET Standard 2.0 --> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" /> <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" /> </ItemGroup> </Project>- 移除之前安装的多余包(比如Blazor相关、CodeAnalysis.Razor等),避免版本冲突。
- 确保项目SDK是
Microsoft.NET.Sdk.Razor,而非普通的Microsoft.NET.Sdk。
解决CSHTML模板找不到的问题
- 切换到Razor类库后,右键项目→添加>新建项,搜索框输入“Razor”就能找到「Razor视图」「Razor页面」等模板。
- 如果手动添加CSHTML文件,右键文件→属性,将「生成操作」改为
Content,避免被当成代码编译。
消除编译错误
- 编译错误大多是因为缺少Razor编译上下文,切换项目类型+修正配置后,这些错误会自动消失。
- 确保所有ASP.NET Core相关包的版本统一(比如都用2.2.x),版本不匹配是编译失败的常见原因。
内容的提问来源于stack exchange,提问作者codeMonkey
相关产品推荐
相关产品推荐

