2010-06-21 62 views
4

我们刚刚从VS2008升级到VS2010。升级到Visual Studio 2010后使用'var'时出错

我们的项目编译得很好;但是当我们运行Web应用程序时,打开Default.aspx时出现以下错误:

'/'应用程序中的服务器错误。 编译错误说明:在编译 期间发生了一个 错误,该错误需要服务此 请求。请仔细阅读以下 特定错误的详细信息,并适当修改您的 源代码。

编译器错误信息:CS0246:该 类型或命名空间名称“变种”不能 被发现(?是否缺少使用 指令或程序集引用)

开放的页面,鼠标悬停在'var'声明上,VS2010正确识别它的类型是RegEx。

我在想,在升级过程中,我们的web.config或machine.config中可能发生了一些奇怪的事情。

之前有人遇到过这个问题吗?任何帮助将不胜感激,希望它可以节省我一些时间潜入这些文件。

编辑: 这里的代码培训相关部分多数民众赞成炸掉:

Line 10: protected void valSearchFreeText_ServerValidate(object source, ServerValidateEventArgs args) 
Line 11: { 
Line 12:  var url = new Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?", RegexOptions.IgnoreCase); 
Line 13:  var html = new Regex(@"[<,>]", RegexOptions.IgnoreCase); 
Line 14:  args.IsValid = !html.IsMatch(args.Value) && !url.IsMatch(args.Value); 

我不认为.NET 4.0的原因;我们只从VS2008升级到VS2010;我们没有从.NET 3.5迁移到.NET 4.0

我将仔细检查ASP.NET开发服务器与IIS,并在几分钟后回传结果。这肯定是从开发服务器抛出的。

编辑2 这是从开发服务器和IIS引发的。 System.Xml.Linq的也包括在我们的web.config的组件部分:

<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
+0

当您在IIS或开发服务器上运行Web应用程序时,您是否获得了此操作? – Greg 2010-06-21 17:27:21

+0

嗯,有趣的问题 – Pierreten 2010-06-21 17:35:38

+0

请显示代码的相关部分,所以我们可以在上下文中看到“var”。 – abelenky 2010-06-21 17:36:14

回答

5

检查您的web.config文件中的configuration/system.codedom/compilers/compiler节点。应该有一个providerOption子节点,它确定要使用的编译器版本。它应该看起来像<providerOption name="CompilerVersion" value="v3.5"/>。听起来像你的说2.0而不是3.5。

+0

这是做到了。我们负责迁移的开发人员将这些内容从应用程序级别的web.config文件移到了机器级别的web.config文件中。 更新的机器级别web.config从来没有把它放在我们的开发环境中。在固定的一切中添加。 – 2010-06-21 18:39:09

3

在IIS相关的应用程序池设置为使用.NET框架4?

+0

我不认为这是它。我们只从VS2008升级到VS2010。我们没有从.NET 3.5迁移到.NET 4.0。 – 2010-06-21 18:21:56

0

确保目标框架设置为3.5或更高 此外,你必须在应用程序的根文件夹一个很好的web.config文件(建议副本的web.config文件并重新命名。)仔细检查

相关问题