Ссылка на проекты. NET 4.0 сборки не имеют IL. Как? а для чего? - PullRequest
2 голосов
/ 27 апреля 2010

Есть кое-что, чего я не понимаю. Сегодня я решил выяснить, что находится внутри Sistem.Web.dll версии 4.0.0.0, поэтому я решил найти место, где находится эта сборка.

alt text

и открыл эту сборку с отражателем - все методы были пусты - а затем с ilDasm из 7.0 SDK. Это то, что я увидел

alt text

После некоторых исследований я обнаружил полнофункциональные сборки в gac. На самом деле здесь

C: \ Windows \ сборка \ NativeImages_v4.0.30319_32 \ System.Web \ 82087f17d3b3f9c493e7261d608a6af4

Они намного больше по размеру. Так почему же ссылки идут не на gac, а на C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Почему у них нет ИЛ внутри? Как это работает?

Мэйб, я чего-то не понимаю.

1 Ответ

1 голос
/ 01 мая 2010

Как вы заметили, они являются dll-файлами со снятым IL-кодом. Как описано ниже, вы не можете ссылаться на сборки в GAC, и GAC не позволяет хранить XML-файлы.

http://p3net.mvps.org/Topics/Basics/IntegratingGACWithVS.aspx

Кроме того, это помогает вам нацеливаться на разные версии .net framework и получать правильный intellisense в Visual studio 2010. VS 2010, как вы знаете, допускает взаимное нацеливание.

...