Is it possible to reference .NET references and give up cross-platform?

I’m a C# programmer starting to get into Unity, and using mono is nice but it’s pretty limiting (since it’s basically .NET 2.0 (or 3.5? not sure)).

Is it possible to just use the actual .NET framework?

I do not care about making my games cross-platform.

If it is possible how? and how could I reference the assemblies?

I believe any code that will be compiled into your Unity project’s assemblies will be stuck with whatever version of .NET Unity is using via Mono (2.0 now). However, if you aren’t interested in cross-platform and will be running on Windows only, you could always write a separate application, using the latest .NET framework, and spawn that application as a process and communicate with it via TCP/IP or some other means.

For instance, we once had this project where we needed to use voice recognition. We wanted to use the latest System.Speech.Recognition in .NET 4.5, but of course couldn’t do so directly in the Unity project. So, we just created a separate application using .NET 4.5 and spawned it within the Unity application with Process.Start (I believe it was). We opened a port between the two and communicated that way. This actually worked very well and had full speech recognition going on within our Unity application using the latest .NET assemblies.