I am starting a new class project, and I'd like for it to be usable by both .NET 3.5 and 4.0 projects.
If I build it for .NET 3.5, do I need to do anything beyond that? Will it be safely usable by .NET 4.0 projects without having to be compiled for it? Are there any incompatibilities? I know that, as an example, .NET 1.1 was supposed to be compatible with 1.0, but there were some subtle changes (that I don't remember.)
Or do I need to build it twice, once for 3.5 and once for 4.0? And... run unit tests for both?
I don't know if there will be any code that could take advantage of anything in 4.0 that isn't in 3.5, so I don't know if there is any real need to actually make a separate 4.0-version.
So my question is: Do I have to, or should I?