删除.NET DLL后,其通过NGEN生成的本机镜像能否被正常调用?
问题解答
不能正常工作,原因如下:
ngen生成的本机镜像(通常以.ni.dll为后缀)只是原始.NET DLL的预编译本机代码缓存,不包含完整的程序集元数据和IL代码。- CLR在加载程序集时,必须依赖原始DLL中的元数据完成类型解析、权限验证、版本匹配等核心流程,仅靠本机镜像无法独立完成这些操作。
- 一旦原始DLL被删除,CLR无法找到对应的程序集元数据,会抛出
FileNotFoundException或类似的加载异常,直接导致调用该DLL的程序无法正常启动或运行。
内容的提问来源于stack exchange,提问作者RainerD
相关产品推荐
相关产品推荐

