To start off, NUnit is in no way deprecated and has become de facto primary unit testing framework for .NET.
However, as a testing framework, it doesn't involve compiling expressions, doesn't use LINQ or dynamic language constructs, and in its current implementation relies on feature found even in .NET 1.0, such as attributes.
However, with the release of .NET 2.0, a new CLR was shipped. Old .NET 1.1 assemblies had to be “remapped” in the application configuration file in order to be picked up by the new CLR, and people would get issues with running their .NET 2.0 applications with a library compiled for .NET 1.1.
When .NET 3.0 and .NET 3.5 came out, they didn't carry a new CLR along. Both of them still use .NET 2.0 CLR and only add some libraries (WPF, WCF) and language features (such as LINQ) with them. Because these releases don't bring changes to CLR, there is absolutely no sense in distributing separate library versions for them, as the binaries would stay exactly the same, referencing version of mscorlib
found in .NET 2.0.
I'm not sure about .NET 4.0 and if it requires entry in App.config
to properly load .NET 2.0-compiled NUnit library so I am open to comments on this.
There's a quote from NUnit blog explaining separate 1.1 and 2.0 packaging:
So, if it’s possible to run the
original, built-with-net-1.1 version
of NUnit under any version of the CLR,
why do we need a separate .Net 2.0
version? Strictly speaking, we don’t.
But it’s convenient for a few reasons:
Folks seem to have an inordinate amount of trouble getting NUnit to run
under the proper framework version.
Having a special version will make
their lives a bit easier, not to
mention mine, since I have to answer
all the questions.
Eventually, we will need a separate version. It’s inevitable that people
will begin to use 2.0-only features in
their tests. Imagine an Assert on a
nullable value. Or a generic
TestFixture class. We’ll be able to
deal with some of those things from an
NUnit built with .Net 1.1, but many of
them will either require .Net 2.0 or
be much simpler to implement with .Net
2.0.
For now, the .Net 2.0 builds are
identical in features to the .Net 1.1
builds. We have reflected this in not
changing the version numbering for
now. Those using one or the other
framework version exclusively can
download a copy of NUnit built to use
that version without missing out on
any features. Those using both
versions have the choice of installing
both versions side by side – just be
careful which one you reference – or
using the command-line /framework
option to select the correct version
on the fly.
(highlighting is mine)
However, it was posted a long time ago (November 2006) so probably by now the versions do differ.