您的位置:首页 > 其它

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

2016-01-04 16:25 295 查看
由于各种原因,原来的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: