一个用户向我们报告说,在安装.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 static属性来确定其执行的CLR版本。

如果您不想更改装配代码,则可以使用 流程资源管理器 要查看运行时加载中加载的DLL。可以从mscoree.dll的版本中标识CLR版本。

其他提示

没有意义,针对CLR版本2.0.50727的程序不会自动使用.NET 4.0运行。需要一个明确的.config文件条目。考虑到您的客户对.config文件的能力,这可能是她实际上所做的,然后发现那里有麻烦。

正如妮可所说,流程资源管理器绝对是最简单的方法。您还可以使用WINDDBG从完整的内存转储中获取此信息。

另请注意,使用4.0,您并排 CLR托管. 。在4.0之前,如果您没有拥有的过程 无法知道加载了什么CLR. 。这可能是您尝试描述的行为的原因。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top