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

Razor项目在Rider中无法跳转定义及构建报错求助

解决Rider中无法跳转、IntelliSense失效及csproj构建错误的方案

一、修复csproj的MSB4057错误

你的FrontendTemplates.csproj缺少标准Build目标导入,且未包含项目文件,导致构建失败。按以下内容修改项目文件:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')"/>
    <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"/>
    <PropertyGroup>
        <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
        <RootNamespace>MyProject</RootNamespace>
        <AssemblyName>MyProject</AssemblyName>
        <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
        <OutputType>Library</OutputType>
    </PropertyGroup>
    <ItemGroup>
        <Reference Include="Microsoft.CSharp"/>
        <Reference Include="System"/>
        <Reference Include="System.Data"/>
        <Reference Include="System.Drawing"/>
        <Reference Include="System.Web.DynamicData"/>
        <Reference Include="System.Web.ApplicationServices"/>
        <Reference Include="System.ComponentModel.DataAnnotations"/>
        <Reference Include="System.Core"/>
        <Reference Include="System.Data.DataSetExtensions"/>
        <Reference Include="System.Xml.Linq"/>
        <Reference Include="System.Web"/>
        <Reference Include="System.Web.Extensions"/>
        <Reference Include="System.Web.Abstractions"/>
        <Reference Include="System.Web.Routing"/>
        <Reference Include="System.Xml"/>
        <Reference Include="System.Configuration"/>
        <Reference Include="System.Web.Services"/>
        <Reference Include="System.EnterpriseServices"/>
        <Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
            <Private>True</Private>
            <HintPath>packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
        </Reference>
        <Reference Include="System.Net.Http"/>
        <Reference Include="System.Net.Http.WebRequest"/>
        <Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
            <Private>True</Private>
            <HintPath>packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll</HintPath>
        </Reference>
        <Reference Include="System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
            <Private>True</Private>
            <HintPath>packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll</HintPath>
        </Reference>
        <Reference Include="System.Web.Optimization">
            <HintPath>packages\Microsoft.AspNet.Web.Optimization.1.1.3\lib\net40\System.Web.Optimization.dll</HintPath>
        </Reference>
        <Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
            <Private>True</Private>
            <HintPath>packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll</HintPath>
        </Reference>
        <Reference Include="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
            <Private>True</Private>
            <HintPath>packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll</HintPath>
        </Reference>
        <Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
            <Private>True</Private>
            <HintPath>packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
        </Reference>
        <Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
            <Private>True</Private>
            <HintPath>packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
        </Reference>
        <Reference Include="Newtonsoft.Json">
            <HintPath>packages\Newtonsoft.Json.11.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
        </Reference>
        <Reference Include="WebGrease">
            <Private>True</Private>
            <HintPath>packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
        </Reference>
        <Reference Include="Antlr3.Runtime">
            <Private>True</Private>
            <HintPath>packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll</HintPath>
        </Reference>
        <Reference Include="Microsoft.CodeDom.Providers.DotNetCompilerPlatform">
            <HintPath>packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll</HintPath>
        </Reference>
    </ItemGroup>
    <ItemGroup>
        <Content Include="**\*.cshtml" />
    </ItemGroup>
    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets')" />
</Project>

修改说明:

  • 添加ProjectTypeGuids标记为ASP.NET MVC项目,让Rider正确识别项目类型
  • 新增Content节点包含所有.cshtml文件,确保Rider将这些文件纳入项目解析范围
  • 导入标准C#和ASP.NET Web构建目标,补上缺失的Build目标定义

二、恢复Rider的跳转和IntelliSense功能

  • 还原NuGet包:右键项目 → NuGet → Restore Packages,确保所有引用包正确安装
  • 重新加载项目:右键解决方案 → Reload All Projects,让Rider重新解析项目结构
  • 检查PDB文件:确保DLL所在目录有对应的.pdb符号文件,无PDB则无法跳转到DLL内部实现
  • 清理缓存:执行File → Invalidate Caches... → Invalidate and Restart,彻底刷新Rider缓存

三、验证修复效果

  1. 构建解决方案,确认MSB4057错误消失
  2. 在.cshtml中尝试Ctrl+右键点击C#方法,检查跳转功能是否正常
  3. 输入代码时,观察IntelliSense是否能正常提示方法和属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:05:16