Visual Studio 2008 did let you reference an assembly A
from an Assembly B
when A was targeting .NET 3.5 and B was targeting .NET 2.0.
Visual Studio 2010 doesn't allow for this any more. The full issue is described on MSDN:
You can create applications that
reference projects or assemblies that
target different versions of the .NET
Framework. For example, if you create
an application that targets the .NET
Framework 4 Client Profile, that
project can reference an assembly that
targets .NET Framework version 2.0.
However, if you create a project that
targets an earlier version of the .NET
Framework, you cannot set a
reference in that project to a project
or assembly that targets the .NET
Framework 4 Client Profile or the .NET
Framework 4. To eliminate the error,
make sure that the profile targeted by
your application is compatible with
the profile targeted by the projects
or assemblies referenced by your
application.
Is there any way I can get VS2010 to behave like VS2008 in this regard (i.e. allowing references to assemblies targeting higher framework versions)?
I know the reasoning behind the VS 2010 behavior and the deployment considerations I need to be aware of, no need to repeat that.
The exact error is:
warning MSB3268: The primary reference
"xxx.dll"
could not be resolved because it has
an indirect dependency on the
framework assembly "System.Core,
Version=3.5.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" which
could not be resolved in the currently
targeted framework.
".NETFramework,Version=v2.0". To
resolve this problem, either remove
the reference
"xxx.dll"
or retarget your application to a
framework version which contains
"System.Core, Version=3.5.0.0,
Culture=neutral,
PublicKeyToken=b77a5c561934e089".
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…