Since the CLR is binding to the interop assembly properly, the problem is likely due to one of the native dll dependencies not being found (or that simconnect.dll itself isn’t getting found for some reason). I’d start with using dumpbin /imports on the native simconnect.dll and see what dependencies it has and whether you can locate them. Alternatively, you can use gflags to take a Loader Snapshot to see what is going on. Because loader snaps can be large, you may want to test with a very simple C# application rather than your actual application.