【问题标题】:Razor views: Intellisense not working with C# 3 for class librariesRazor 视图:Intellisense 不适用于类库的 C# 3
【发布时间】:2012-03-22 07:05:38
【问题描述】:

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

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

  1. 使用区域
  2. 使用自定义VirtualPathProvider
  3. 对每个程序集使用BuildManager.AddReferencedAssembly
  4. 修改了 csproj 文件以添加对 Razor/wizards 的支持 (<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>)
  5. web.configs 从 web 项目复制到每个类库项目中

一切正常,除了剃刀视图中的智能感知。我收到这样的警告:

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

类库设置为使用 .NET 4。

这里还有一些其他问题解决了同样的问题

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

【问题讨论】:

    标签: c# asp.net-mvc-3 asp.net-mvc-3-areas


    【解决方案1】:

    设置 framework 版本与设置 language 版本不同。

    我可以通过使用 lambda 表达式创建示例并使用以下方法来重现相同的错误:

    csc /langversion:ISO-2 Test.cs
    

    在 Visual Studio 中,它位于项目属性/构建/高级.../语言版本下。让我感到不寻常的是,您将 Razor 项目固定为 ISO-2...

    【讨论】:

    • 在运行项目时一切正常并且工作正常。当我从 VStudio 中的类库打开剃刀视图时,我得到了错误。所以这不是一个不正确的构建设置。 It does strike me as unusual that you'd have a Razor project fixed at ISO-2我没有指定这样的。我的问题是我不知道为什么 VStudio intellisense 在编辑器中打开视图时要将视图编译为 c# 2.0。
    • @jgauffin:那么即使是导致VS中错误的代码在您实际构建时也可以工作?当您拥有不在类库中的 Razor 视图时,这不会发生?听起来它可能“只是”视图编辑器中的一个错误,但很烦人:(
    • 这很烦人是的。看看其他问题,似乎有一个解决方案(但他们的回答并没有帮助我找到问题所在)。
    • 你解决过这个问题吗?我在整个解决方案中都遇到了这个问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2013-12-24
    • 1970-01-01
    相关资源
    最近更新 更多