一些搜索会返回此结果:Which processes are running managed code and which version?
但是我想知道是否有一种“更好”的方式,然后简单地迭代加载的模块?寻找字符串“mscorwks.dll”似乎有点古怪。通过MSDN上的Process Class阅读似乎没有指出明显的解决方案。
假设
谢谢
答案 0 :(得分:6)
对于任何未来的Google员工:我最终使用此处发布的建议答案How to check if a program is using .NET?(感谢0xA3!)
Process mProcess = //Get Your Process Here
foreach (ProcessModule pm in mProcess.Modules)
{
if (pm.ModuleName.StartsWith("mscor", StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
}
另外,在我的原始帖子中提到的“mscorwks.dll”不适用于.NET 4.0。
答案 1 :(得分:1)
在代码中,获取执行过程的完整路径。
尝试在流程中使用Assembly.Load
。如果它有效,那就是.Net程序集:))