Какова иерархия поиска в папке .NET? - PullRequest
4 голосов
/ 10 ноября 2010

Когда .NET требуется загрузить сборку, какая иерархия папок используется для поиска сборки? Я предполагаю, что это начинается с GAC, а затем локальной папки исполняющей сборки? Какова полная иерархия? Я знаю, что путь поиска Windows (для неуправляемого кода) похож на локальную папку / папку System32 / путь поиска / и т.д. и я ищу что-то подобное для .NET.

Ответы [ 3 ]

4 голосов
/ 10 ноября 2010

Если вы искали описание процесса, а не ссылки на длинные статьи MSDN, это краткое описание шагов *1001*. Вы можете найти более подробную информацию здесь .

Шаги, выполняемые средой выполнения для разрешения ссылки на сборку:

  1. Определяет правильную версию сборки, изучая применимые файлы конфигурации.
  2. Проверяет, было ли ранее связано имя сборки, и, если да, использует ранее загруженную сборку .
  3. Проверяет GAC .
  4. Зонды для сборки, выполнив следующие действия:

    a) Если конфигурация и политика издателя не влияют на исходную ссылку, и если запрос на связывание был создан с использованием метода Assembly.LoadFrom, среда выполнения проверяет подсказки расположения .

    b) Если в файлах конфигурации обнаружена кодовая база , среда выполнения проверяет только это местоположение.

    c) Зонды для сборки с использованием эвристики, описанной в разделе Зондирование . Если сборка не найдена после проверки, среда выполнения запрашивает установщик Windows, чтобы предоставить сборку. Это действует как установка по требованию .

1 голос
/ 10 ноября 2010
0 голосов
/ 10 ноября 2010

Посмотрите на эту статью Как среда выполнения находит сборки .

На самом деле это не линейный путь, и он зависит от многих (загружена ли уже сборка, файлы конфигурации, ...) но статья очень понятная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...