A bit of searching returns this result: Which processes are running managed code and which version?
However I am wondering if there is a \'better\' way then simply i
For any future Googlers: I ended up using the suggested answer posted here How to check if a program is using .NET? (thanks 0xA3!)
Process mProcess = //Get Your Process Here
foreach (ProcessModule pm in mProcess.Modules)
{
if (pm.ModuleName.StartsWith("mscor", StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
}
As an aside looking for "mscorwks.dll" as mentioned in my original post does not work for .NET 4.0.
In code, get the full path of the executing process.
Try to use Assembly.Load
on the process. If it works, it's a .Net assembly :)