I am working on an application in VS2010 with target platform 3.5. I am refering to some third party .Net 2.0 assemblies in my application. These third party assemblies are dependent on some other assemblies which are available in both 2.0 and 4.0 GACs. It seems that VS2010 resolves these dependencies from GAC 4.0 even though my application is targetting framework 3.5 and it is directly refering to 2.0 assemblies. I get build errors that types can not be loaded from referenced assemblies. Everything works fine when I remove assemblies from GAC 4.0 and thus dependencies are resolved from GAC 2.0. I don't know why this is happening.