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

在.NET 6的Microsoft.NET.Sdk.Razor项目中引用哪些包可解决IViewLocationExpander缺失问题?

解决方案

核心原因

从.NET Core 3.0开始,ASP.NET Core的核心组件不再以独立NuGet包的形式分发,而是整合进Microsoft.AspNetCore.App共享框架中。你看到的Microsoft.AspNetCore.Mvc.Razor包停更在2.2.0,是因为它仅适用于.NET Core 2.x版本,不适用于.NET 6。

具体解决步骤

  1. 确认Razor项目的目标框架
    在你的Microsoft.NET.Sdk.Razor项目文件中,确保TargetFramework设置为net6.0:
<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
  1. 添加共享框架引用
    在项目文件中添加<FrameworkReference>节点,引入Microsoft.AspNetCore.App共享框架,即可自动获取IViewLocationExpander所在的程序集:
<ItemGroup>
  <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

完整Razor项目文件示例

<Project Sdk="Microsoft.NET.Sdk.Razor">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>
</Project>

补充说明

  • 无需手动指定包版本,共享框架版本会与你安装的.NET 6 SDK版本(如6.0.12)自动对齐。
  • 主ASP.NET Core Web项目(Microsoft.NET.Sdk.Web)默认已包含该共享框架引用,直接引用Razor项目即可正常使用相关类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:15:36