在浏览Silverlight安装目录时,我看到了许多预期的框架DLL。但我也看到一个单独的DLL具有相同的名称,但在dll名称和扩展名之间插入.ni。例如,有一个System.dll和System.ni.dll。几乎所有的系统dll似乎都有一个姐妹.ni dll。在Reflector中快速查看它们似乎包含相同的内容,但二进制大小要大得多。
出于好奇,有人可以解释这些是什么吗?
答案 0 :(得分:12)
这些是原生图像。 .NET框架包含一个名为ngen的工具,可以将.NET程序集编译为本机机器代码。 Silverlight和.NET框架在安装时会生成其程序集的本机映像。
这可以减少使用这些程序集的任何内容的启动时间,因为它们不必在运行时由JIT编译。