Problem : Today I was working on an interesting problem in .NET, where a reference to an assembly is resolved physically, but then it is not included when MS Build tries to lookup types in that assembly.
Reason : Though a reference assembly is physically resolved there seems to be certain conditions under which the assembly is considered for lookup. One such thing is the Target Framework version and TargetFrameworkProfile. If the target version of the referenced assembly is greater than the target version of the referencing assembly then you will receive a warning regarding unresolved assemblies, but consequently you will get a lot of errors regarding missing types, those that are side effects of the warning .
Resolution : Make sure that the target framework version and profile are appropriate for the referencing and referenced assemblies.