You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中.NET Standard 2.0项目无法构建Razor CSHTML文件

解决.NET Standard 2.0类库存放CSHTML Razor文件的问题

核心问题根源

.NET Standard 2.0是通用类库标准,本身不具备Razor视图的编译和运行时支持,用普通.NET Standard类库存放CSHTML,必然会遇到模板找不到、编译失败的问题。

具体解决方案

  1. 切换到Razor类库项目类型
    直接创建ASP.NET Core Razor类库(而非普通.NET Standard类库),这类项目专门为存放Razor视图、页面、组件设计,默认支持CSHTML模板识别和编译。如果需要兼容.NET Standard 2.0,后续再调整目标框架即可。

  2. 修正.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。
  3. 解决CSHTML模板找不到的问题

    • 切换到Razor类库后,右键项目→添加>新建项,搜索框输入“Razor”就能找到「Razor视图」「Razor页面」等模板。
    • 如果手动添加CSHTML文件,右键文件→属性,将「生成操作」改为Content,避免被当成代码编译。
  4. 消除编译错误

    • 编译错误大多是因为缺少Razor编译上下文,切换项目类型+修正配置后,这些错误会自动消失。
    • 确保所有ASP.NET Core相关包的版本统一(比如都用2.2.x),版本不匹配是编译失败的常见原因。

内容的提问来源于stack exchange,提问作者codeMonkey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:31:11