2012-03-22 56 views
3

我在我的ASP.NET MVC3项目中使用类库。剃须刀的意见:智能感知不与C#3类库的工作

得到它的工作我已经做了以下内容:

  1. 使用领域
  2. 使用自定义VirtualPathProvider
  3. 使用BuildManager.AddReferencedAssembly每个装配
  4. 修改了的csproj文件添加Razor的支持/向导(<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
  5. web.config从web项目复制到每个类库项目

一切工作,除了在剃刀视图intellisense。我得到这样的警告:

功能的lambda表达式'不能使用,因为它不是ISO-2 C#语言规范

类库被设置为使用.NET 4的一部分。

这里有一些其他的问题,解决相同的问题

,但我无法找到任何东西,这将迫使编译器2.0上运行(并且不会使我的观点在运行时失败?)

回答

1

设置框架版本ISN”与设置语言版本相同。

我可以通过创建一个lambda表达式样品并使用复制了同样的错误:

csc /langversion:ISO-2 Test.cs 

在Visual Studio,这是根据项目属性/生成/高级... /语言版本。它确实让我很不同寻常,因为你会有一个固定在ISO-2的Razor项目......

+1

一切都很好,并且在运行项目时工作。当我从VStudio的类库中打开一个剃须刀视图时,我发现了错误。所以这不是一个不正确的编译设置。 '这确实让我感到不同寻常,因为你有一个固定在ISO-2上的Razor项目'我没有指定这样的项目。我的问题是,我不知道为什么VStudio intellisense在编辑器中打开它们时想要将视图编译为c#2.0。 – jgauffin 2012-03-22 07:13:07

+0

@jgauffin:即使在实际构建时,导致VS中的错误的代码也能正常工作?当你拥有不在类库中的Razor视图时,这*不会发生?听起来像它可能“只是”在视图编辑器中的错误,但一个恼人的:( – 2012-03-22 07:15:12

+0

这是讨厌的是的。看看其他问题,似乎有一个解决方案(但他们的答案并没有帮助我追查问题)。 – jgauffin 2012-03-22 07:17:57