MVC 2与VS 2010视图构建错误:function’匿名类型’不能使用,因为它不是ISO-2 C#语言规范的一部分

我有一个共享项目,我存储了所有自定义的EditTemplates和DisplayTemplates。 这是一个常规的C#类库项目,其视图都标记为嵌入式资源。 该项目的目标框架是“.Net Framework 4”。

在/ Views /文件夹中我已经包含了这个web.config文件,因此在使用.aspx和.ascx文件时我获得了MVC 2 intellisense:

                    

通常我没有这个设置的问题但是一旦我编译我的视图时遇到错误:

错误3无法使用function“匿名类型”,因为它不是ISO-2 C#语言规范的一部分

对于看起来像这样的模板:

     

大多数情况下,这个错误就消失了。 我已经学会了处理它,但现在它引起了一些问题。 任何导致“错误3function’匿名类型’的原因都无法使用,因为它不是ISO-2 C#语言规范的一部分”错误以及如何解决这个问题?

不知何故,您的IDE体验导致4.0 C#编译器仅限于2.0版编译器中允许的function。 这可以使用langversion开关完成。 例如

csc / langversion:ISO-2 ……

完整文档: http : //msdn.microsoft.com/en-us/library/f4ckecs0.aspx

我不熟悉Asp.Net MVC的编译工作原理,但在项目系统的某个地方,你要求仅限于2.0框架。 我的第一个猜测是查看项目的项目页面并确保它不是以2.0为目标。

我已经遇到了这个问题,并且已经花了很多时间,同时发现其中包含空配置部分的App.Config文件是邪恶的根源。 只需删除App.Config ,一切都会正常工作。

我的解决方案是改变项目类型

  1. 卸载项目
  2. 编辑项目
  3. 为此交换项目GUID

    ProjectTypeGuids: {E53F8FEA-EAE0-44A6-8774-FFD645390401}; {349c5851-65df-11da-9384-00065b846f21}; {fae04ec0-301f-11d3-bf4b-00c04f79efbc}

(这是一个MVC3项目)

对我来说,这最终是由于磁盘空间不足造成的,这是一种不寻常和无法解释的随机构建错误的冰雹。