Error using 'var' after upgrading to Visual Studio 2010
We just recently upgraded from VS2008 to VS2010.
Our project compiles fine; but when we go to run the Web Application, we get the following error when opening Default.aspx:
Server Error in '/' Application. Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0246: The type or namespace name 'var' could not be found (are you missing a using directive or an assembly reference?)
Opening up the page, and mousing over the 'var' declaration, VS2010 correctly recognizes that it's type is a RegEx.
I'm thinking something funky might have happened in either our web.config or machine.config during the upgrade.
Anybody else run into this problem before? Any help would be greatly appreciated, hopefully it can save me some time diving into these files.
EDIT: Here's the relevent section of code that's blowing up:
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);
I don't believe that .NET 4.0 is the cause; we only upgraded from VS2008 to VS2010; we did not migrate from .NET 3.5 to .NET 4.0
I will double check on the ASP.NET Development Server vs. IIS and post back in a few minutes with the results from that. It's definitely being thrown from the Development Server.
Edit 2 This is being thrown from both the Development Server, and IIS. System.Xml.Linq is also included in the assemblies section of our web.config:
<add assembly="System.Xml.Linq, Versio开发者_StackOverflown=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Check your web.config file for the configuration/system.codedom/compilers/compiler
node. There should be a providerOption
child node that determines the compiler version to be used. It ought to look like <providerOption name="CompilerVersion" value="v3.5"/>
. It sounds like yours says 2.0 instead of 3.5.
Is the associated application pool in IIS set to use the .Net 4 framework?
Ensure that the target framework is set to 3.5 or higher Also, double check that you have a good web.config file in the Application root folder (copy the recommended web.config and rename it.)
精彩评论