System.Linq namespace missing even with reference to System.Core.Dll

joeriks picture joeriks · Sep 30, 2010 · Viewed 13.8k times · Source

When I open up a Asp Net web site of mine in Visual Studio 2010 the properties say "Target Framework 3.5", however when I try to using the Linq namespace the compiler complains about it.

"The type or namespace name 'var' could not be found (are you missing a using directive or an assembly reference?)"

"The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)"

I manually referenced some dll's to fix my problem, but still no success.

<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Help? :-)

Answer

Jon Skeet picture Jon Skeet · Sep 30, 2010

If you can't even use var, that suggests it's not even using the right version of the C# compiler. (You should be able to use var even when targeting .NET 2.0, so long as you're using the C# 3 or C# 4 compiler.) I would concentrate on getting that working first before anything else.

Is it possible that you're running on IIS but don't have that configured appropriately? It might be worth looking at your website configuration around that side of things, and possibly rerunning aspnet_regiis.