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

Razor多错误排查:缺少引用?Visual Studio for Mac(C#/MVC/EF)

解决Mac版Visual Studio中Razor页面编译引用丢失及HtmlString找不到的问题

我之前也碰到过Mac版VS里ASP.NET项目Razor页面编译异常的情况,结合你描述的错误信息,给你几个针对性的解决办法:

1. 检查项目文件的SDK配置

首先打开你的.csproj文件,确认顶部的SDK引用是Web专用的:

<Project Sdk="Microsoft.NET.Sdk.Web">

如果之前是Microsoft.NET.Sdk,改成上面的Web SDK——它包含了Razor页面编译所需的全部依赖。

同时检查是否有PreserveCompilationContext的配置,确保它没有被设为false:

<PropertyGroup>
  <!-- 要么不写(默认值为true),要么显式声明 -->
  <PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>

2. 清理缓存并重建项目

Mac版VS的编译缓存偶尔会出问题,按以下步骤操作:

  • 右键项目 → 选择「清理」
  • 右键项目 → 选择「重建」
  • 手动删除项目根目录下的bin和obj文件夹,然后重启Visual Studio再重新编译

3. 修复HtmlString的命名空间引用

针对HtmlString找不到的错误,分两种情况处理:

  • 如果是ASP.NET Core项目,在_layout.cshtml顶部添加命名空间引用:
    @using Microsoft.AspNetCore.Html
    
  • 如果是传统ASP.NET MVC项目,添加的是:
    @using System.Web.Mvc
    
    推荐在_ViewImports.cshtml文件中全局添加这个引用,这样所有Razor页面都能自动识别该命名空间,不用每个页面单独加。

4. 同步IDE和.NET SDK版本

有时候跨平台的版本差异会导致这类问题:

  • 打开Mac版Visual Studio,通过「Visual Studio」→「检查更新」把IDE更到最新版
  • 在终端执行dotnet --list-sdks查看已安装的.NET SDK,确保和你Windows上使用的版本一致(至少大版本匹配,比如都是.NET 6),如果缺少对应版本,下载安装即可

5. 确认项目目标框架配置

打开.csproj文件,检查<TargetFramework>节点的版本,比如:

<TargetFramework>net6.0</TargetFramework>

确保这个版本的.NET SDK已经在Mac上安装完成,否则会出现编译依赖缺失的问题。

这些步骤应该能解决你碰到的问题,我当时是通过清理缓存+修正SDK引用搞定的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:13:23