首页 > 解决方案 > 如何强制 DotNet 框架使用 JIT 而不是 NGEN?

问题描述

我正在调试与在进程中加载​​ DotNet Framework 程序集的本机映像相关的问题,例如 System.Windows.Forms.ni.dll 我想阻止这些本机映像加载。有人有什么想法吗?

如果使用 SOS 或其他一些 WinDbg 扩展来托管代码,这可能会很有用。这些工具适用于托管代码,因此您不希望 NGEN 将 DotNet Framework dll 转换为本机图像。

参考:https ://docs.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator

谢谢!

标签: c#.netsosngen

解决方案


您可以通过将环境变量设置为 1 来禁用 NGEN 图像加载COMPLUS_ZapDisable。使用此变量,.Net 应该加载原始程序集而不是本机图像。但它会减慢一切,因为 .Net 需要 JIT 框架程序集中的所有代码。

检查这篇文章:https ://blogs.msdn.microsoft.com/sburke/2008/01/29/how-to-disable-optimizations-when-debugging-reference-source/


推荐阅读