我经常收到这个错误:
功能' {insert feature here} '无法使用,因为它不属于 ISO-2 C#语言规范
我正在开发一个.NET 3.5网站,我已经工作了大约两年。在我最近的更新之前,我从未见过这个错误。我在整个过程中使用了大量的LINQ编码,并且我得到了与大部分LINQ代码相关的这些错误。基于我所读到的,似乎即使我使用.NET 3.5,由于某种原因它认为我使用的是2.0。但我找不到任何说明如何解决它的问题。
问题的一个例子是,如果我尝试将新项添加到App_Code目录,我就不会选择添加LINQ to SQL dbml文件。
如果有人能说明我将如何解决这个问题,我将非常感激。
我无法在构建标签下找到“高级”选项。我有一种感觉,这可能是因为它是一个网络应用程序。我查看了web.config,发现了两个可能很重要的部分。大部分内容都引用了3.5.0.0或v3.5。从没有错误时,这些设置与web.config的旧备份保持一致。顺便说一下,只有智能感知和VS2010内部的东西给我带来了问题。该网站正在运行,没有错误。
我已完成VS2010的完全卸载和重新安装,但我仍然遇到同样的问题。我启动了我的旧版VS2008,我没有遇到这个问题。但是,我很乐意在这个项目中使用VS2010。
我在工作计算机上打开了VS2010中的网站,并且没有报告错误。这让我觉得我的笔记本电脑上有一些东西导致了这个问题。如上所述,我完全重新安装了Visual Studio 2010,但我仍然遇到了问题。这离开了什么?我在VS中只安装了一个扩展,在工作和笔记本电脑上都是一个扩展。此外,重新安装VS后,我没有重新安装扩展程序,问题仍然存在。
这两款PC都运行Win7 Ultimate。安装了VS2008和VS2010。 VS2010在两者上安装了相同的扩展。在我的笔记本电脑上,我安装了完整版的SQL Server 2008,但只有桌面上的Management Studio(办公室里有一台服务器)。 SS2008会与它有什么关系吗?
答案 0 :(得分:1)
转到项目属性,“构建”选项卡“高级” - 这应该允许您设置要使用的C#版本。它应默认为您正在使用的Visual Studio版本支持的最新版本,但听起来您在某些时候已将其切换为ISO-2。
(对于Windows项目和类库来说确实如此 - 可能是Web应用程序中的不同位置。特别是,请查看Web.config。)
如果这种情况最近才开始发生,我会在更改任何配置文件时查看源代码管理历史记录。还可以尝试创建相同类型的新项目,看看是否存在同样的问题。
答案 1 :(得分:0)
我使用的扩展程序Solution Navigator拥有自己的解决方案标题。右键单击它不会给我属性页选项。我偶然点击了解决方案标题下的网站标题,并显示了Property Pages选项。在那里有Build选项卡,其中包含目标框架选项。
一旦我最终找到目标框架选项,它确实因某种原因设置为.NET 2.0。我将其更改为3.5,重新加载解决方案,现在它运行良好。
感谢一百万Jon的帮助和时间与我合作!!