Well, after you made sure that you've got both the .NET Framework 2.0 and the DirectX Runtime (April 2006) installed (in the right order), and you still get the crashes, you could copy and paste the error report, which you get. (along with the module information on the second dialog window of the error report) and post it somewhere so that I can have a look at it.
I'm using the .NET Framework because it's far easier to use than native Win32 (especially since I don't have a forms designer for Win32). Also, the DirectX functions are accessible in a more comfortable way when using .NET.
And for the compatibility, in Windows Vista, .NET will be the language of choice when developing applications. Right now, there is a runtime that wraps the managed code into Win32 code, but on Vista, the managed code will be executed directly, and the native Win32 programming will be declared as deprecated and will sooner or later not be supported anymore.
Also, portability to other systems is easier, there is even a way to easily port .NET applications to Linux, since it doesn't depend on the OS's functions anymore.
And since the emulation core is completely independent from the gui, I don't have any speed problems, too, because the core is programmed using unmanaged code (unmanaged isn't a synonym for native Win32, I don't use a single windows library in that core code, it just means that I don't use .NET).
So .NET is the language of choice for me.