Win10下DotNet程序兼容性,切换DotNet4.6的RyuJIT为原来的LegacyJIT

来源:互联网 发布:flickr打不开 mac 编辑:程序博客网 时间:2024/06/15 19:03

由于各种原因,原来的DotNet项目在win10(默认安装了DotNet4.6.1)上可能遇到各种问题完全无法理解,这时候可以跟代码看看问题是否是出现在.Net框架上,如果是这样,可以尝试禁用DotNet4.6.1默认的新一代JIT,回归原来的LegacyJIT,再看问题是否依旧。

禁用RyuJIT

微软提供了三种方法来禁用RyuJIT而使用上一代的LegacyJit:

1.给需要试用LegacyJit的程序添加配置文件

  • <exename>.exe.config文件(如果没有就自己新建一个)中添加配置:
    useLegacyJit enabled="1"
  • 示例:
  <configuration>    <runtime>      <useLegacyJit enabled="1" />    </runtime>  </configuration>
  • 注意:此方法不适用于ASP.NET网站,该配置在web.confg中无效。

2.添加环境变量

  • 可以设置环境变量COMPLUS_useLegacyJit=1
  • 注意:此方法的作用范围为继承了该环境变量的环境,可以只是一个set了该环境变量的命令窗口,可以是在添加了该环境变量的整个系统。

3.修改注册表

  • 运行regedit,定位到如下位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFrameworkHKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
  • 右键,新建,DWORD(32位)值,名称为useLegacyJit值(数据)为1.

参考:https://github.com/Microsoft/dotnet/blob/master/docs/testing-with-ryujit.md

0 0
原创粉丝点击