VS compile problem after moving solution to 2010

I switched recently our asp.net 3.5 solution from VS 2008 to VS 2010 while still wanting it to be in .net 3.5 (as the deployment server runs on 3.5 only)

The libraries are migrated ok - no problems, but the web site is causing problems. The error message I get on every aspx page is like this:

D:\WebSites\.....aspx: ASP.NET runtime error: Could not load type 'Microsoft.Build.Framework.ITaskItem2' from assembly 'Microsoft.Build.Framework, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

I found out that the interface the compiler is looking for (ITaskItem2) is only available in .net 4.0, but it keeps looking for it in 3.5 assembly which is obviously wrong.

I was trying to locate where this discrepancy is originating, but with no luck.

It hinders my work significantly, because when the page is not compiled, the intellisense is not working for asp components, also debugging of the web pages is not working.

But even when this error occurs in VS, the pages are working correctly when displaying them in browser (using IIS), so this is VS-only problem.

If you have any idea, what could be wrong here, please let me know.

Who is Participating?
OndrejovicConnect With a Mentor Author Commented:
I solved this at last...

the thing I have done is that I removed the existing web.config from the website and let Visual Studio generate new one (default). Then I added the few options/settings we use and things started to work.

The difference in old and new web.config was just one section:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <assemblyIdentity name="Microsoft.Build.Framework"
       publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
      <bindingRedirect oldVersion="" newVersion=""/>

Open in new window

which was removed in the new web.config.

The section originally appeared when the project was switched from .net 2.0 to 3.5 and never caused us any problem until switching the development environment to Visual Studio 2010.

That's it.
Rikin ShahMicrosoft Dynamics CRM ConsultantCommented:

Check if the project is still using .net framework 3.5? Go to project properties and change the .net version to 4.0 if not and compile.
OndrejovicAuthor Commented:

thanks for proposal. I did this and it solved the mentioned error. However it produced load of new problems mostly with referenced libraries. :(

Example: Reference required to assembly 'System.Data.DataSetExtensions, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089' containing the base class 'System.Data.TypedTableBase`1'. Add one to your project.

Which was not there before.

I need to keep the whole project in 3.5 as this is the latest version available on production server.
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Rikin ShahMicrosoft Dynamics CRM ConsultantCommented:

If there is no key added for this in web.config, add it.

<compilation debug="true">
    <add assembly="System.Data.DataSetExtensions, Version=, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
OndrejovicAuthor Commented:

but I would rather solve this problem without switching the website to 4.0 (as 3.5 is running on prod server)
Rikin ShahMicrosoft Dynamics CRM ConsultantCommented:

Have you tried explicit loading System.Data.DataSetExtensions.dll to the project?

Try replacing: using System.Data.DataSetExtensions; with using System.Data;
OndrejovicAuthor Commented:
I found the solution by myself..
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.