A user reported to us that some strange behaviour in our application can be resolved after installing .NET 4:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
I wasn’t aware that if you didn’t specify an assembly it might be loaded in a higher, but compatible version.
Is it possible to identify which framework an executable is executing with? at run-time? or through some external process? I wish to confirm that this is the case, and the users experience has not be the result of some other issue.
Process Explorer says EVEMon is running under the 2.0, I am inclined to suspect the issue is was environmental:

From within your assembly’s running code, you can use the System.Environment.Version static property to determine the CLR version under which it is executing.
If you don’t want to change the assembly code, you could use Process Explorer to see the DLLs loaded in the process at runtime. The CLR version can be identified from the version of mscoree.dll.