Razor视图:Intellisense不使用C#3作为类库

Razor视图:Intellisense不使用C#3作为类库,c#,asp.net-mvc-3,asp.net-mvc-3-areas,C#,Asp.net Mvc 3,Asp.net Mvc 3 Areas,我正在ASP.NET MVC3项目中使用类库 为了让它工作,我做了以下工作: 使用区域 使用自定义的VirtualPathProvider 为每个程序集使用BuildManager.addReferenceAssembly 修改csproj文件以添加对剃须刀/向导的支持({E53F8FEA-EAE0-44A6-8774-FFD645390401};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}) 将web.configs从web项目复制到每个类库项目 除了razor

我正在ASP.NET MVC3项目中使用类库

为了让它工作,我做了以下工作:

  • 使用区域
  • 使用自定义的
    VirtualPathProvider
  • 为每个程序集使用
    BuildManager.addReferenceAssembly
  • 修改csproj文件以添加对剃须刀/向导的支持(
    {E53F8FEA-EAE0-44A6-8774-FFD645390401};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
  • web.config
    s从web项目复制到每个类库项目
  • 除了razor视图中的intellisense之外,一切都正常。我收到如下警告:

    无法使用功能“lambda表达式”,因为它不是ISO-2 C#语言规范的一部分

    类库设置为使用.NET 4

    这里还有一些其他问题涉及同样的问题

    但是我找不到任何可以强制编译器在2.0中运行的东西(这不会使我的视图在运行时失败吗?

    设置框架版本与设置语言版本不同

    我可以通过使用lambda表达式创建样本并使用以下方法再现相同的错误:

    csc /langversion:ISO-2 Test.cs
    

    在Visual Studio中,这在项目属性/Build/Advanced…/语言版本。让我感到不寻常的是,你会有一个ISO-2的Razor项目……

    运行该项目时,一切都会正常运行。当我在VStudio中从类库打开razor视图时,我得到了错误。所以这不是一个不正确的构建设置
    我觉得你会在ISO-2上安装一个Razor项目是不寻常的
    我没有指定这样的项目。我的问题是,我不知道为什么VStudio intellisense在编辑器中打开视图时希望将其编译为c#2.0。@jgauffin:那么,即使是在VS中导致错误的代码在实际构建时也能正常工作?当您拥有类库中没有的Razor视图时,不会发生这种情况吗?听起来这可能只是视图编辑器中的一个bug,但却是一个恼人的bug:(是的,这很恼人。看看其他问题,似乎有一个解决方案(但他们的答案没有帮助我找到问题)。你有没有解决过这个问题?我的解决方案中都有这个问题