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

由于各种原因,原来的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\.NETFramework
HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
  • 右键,新建,DWORD(32位)值,名称为useLegacyJit值(数据)为1.

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值