.net - 如何识别程序集加载在哪个框架中?

标签 .net assemblies mixed-mode

一位用户向我们报告说,在安装 .NET 4 后,我们的应用程序中的一些奇怪行为可以得到解决:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

我不知道如果您没有指定程序集,它可能会以更高但兼容的版本加载。

是否可以识别可执行文件正在使用哪个框架执行?在运行时?还是通过一些外部过程?我想确认情况确实如此,用户体验不是其他问题的结果。


Process Explorer 说 EVEMon 在 2.0 下运行,我倾向于怀疑问题是环境问题:

Process Explorer

最佳答案

在程序集的运行代码中,您可以使用 System.Environment.Version 静态属性来确定它正在执行的 CLR 版本。

如果你不想改变汇编代码,你可以使用Process Explorer查看运行时进程中加载​​的 DLL。 CLR版本可以通过mscoree.dll的版本来识别。

关于.net - 如何识别程序集加载在哪个框架中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3515459/

相关文章:

wpf - 如何使用单独程序集的嵌入图像?

c# - Windows 服务启动失败,混合模式程序集问题

.net - .NET 4 中的混合模式程序集

c++ - 使用来自/clr :pure projects 的混合 DLL

.net - DoubleClick 事件何时引发,而不是双击鼠标?

c# - 使用 LINQ 检查列表是否为空

c# - 如何从内存中执行 WPF 程序集?

visual-studio - 在 Visual Studio 中引用 COM 程序集与通过 tlbimp.exe 转换 COM 程序集

c# - WMI 性能不佳

.net - 如何使用 ClosedXml 将 Excel 中的整个工作表数据读取到 DataTable 中