2013-09-05 2 views
0

Когда мой .net exe запускается, он загружает правильные сборки .net в режиме rumtime. Я понимаю, что происходит процесс зондирования.Как имена имен сборных имен .net, разрешенные clr во время выполнения?

Мой вопрос в том, что если я открою .net exe/dll в ildasm, я только .extern ссылку на mscorlib.dll, а не другие.

так как clr получает информацию, необходимую для проведения проверки ссылок, посвященных сетям .net?

У меня есть пример проекта и изображения здесь.

enter image description here enter image description here

поэтому в данном случае, я не вижу ссылки .net сборки в любом месте, как система, System.Xml.Linq, вопросы и т.д .., но, очевидно, они будут загружены в CLR и я делать см. их в моем журнале fusion logviewer

где находятся данные, необходимые для сборки .net?

Я заметил некоторое непоследовательное поведение поведения, как сборки extern помещают манифест для некоторых ядре .net dll и других внешних DLL-библиотек .net.

Thanks

+0

это просто не тот же EXE. Ваш дискомфорт для Questions.exe, ваш след для Questions.vshost.exe. Что включает в себя процесс хостинга и зависимости отладчика. Запустите Questions.exe вне VS для сравнения яблок с апельсинами. –

+0

Я знаю, я только что разместил новый рис. –

+0

@John: Подсказка: если вам все равно, вы можете также очернить строку заголовка ILDASM. –

ответ

0

Я получил его. На самом деле я немного запутался. то, что показывает ILDasm, верно. Все связанные с статически привязанными dll помещаются в манифест DLL.

Почему мы не видели ссылки на систему, потому что mscorlib имеет часть пространства имен System? Sysem.dll в GAC содержит остальные классы в этом пространстве имен. Таким образом, пространство имен System разделено на две библиотеки dll. Чаще всего и базисные находятся в mscorelibrary.dll и отдых в System.dll

Собственно Visual Studio это немного вводит в заблуждение, чтобы показать System.dll всегда в качестве ссылки, которая не соответствует действительности всегда

Когда я

 var bvv = new System.Uri("http://www.google.com"); ------ System.Uri class is in System.dll 

    Console.WriteLine(bvv.AbsolutePath);--------------------- System.Console class is in mscorlib.dll 

я мог ясно видеть ссылку на System.dll

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^