Silverlight - это файлы .ni.dlls?

При просмотре каталога установки Silverlight я вижу несколько DLL-модулей, как ожидалось. Но я также вижу отдельную DLL с тем же именем, но с .ni, вставленным между именем dll и расширением. Например, есть System.dll и System.ni.dll. Кажется, есть сестра .ni dll для почти всех системных dll. Глядя на быстрое отражение в Reflector, они, похоже, содержат один и тот же контент, но намного больше в двоичном размере.

Просто из любопытства, может ли кто-нибудь объяснить, что это такое?

Ответ 1

Это родные изображения. В .NET framework включен инструмент с именем ngen, который может скомпилировать сборки .NET в собственный машинный код. Silverlight и .NET Framework генерируют собственные изображения своих сборок, когда они установлены.

Это может сократить время запуска всего, используя эти сборки, поскольку они не должны быть скомпилированы JIT во время выполнения.