Подтвердить что ты не робот

Где расположены узлы в .NET физически?

Я немного смущен тем, что сборки .NET физически расположены. Возьмите старый добрый LINQ. В моем файле web.config говорится:

<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Это ссылка на LINQ. Но где именно DLL это относится к расположенной? В этом нет никакого пути, и это не в моей папке bin.

У меня также есть то, что я считаю ссылкой сторонней сборки:

<add assembly="MapInfo.CoreTypes, Version=4.0.0.483, Culture=neutral, PublicKeyToken=F548BCBA69D4B8DA" />

Как я могу определить, где это находится на моем компьютере, если оно не находится в папке bin?

Кроме того, если DLL файл находится в каталоге bin, могу ли я предположить, что на него не нужно ссылаться в web.config?

4b9b3361

Ответ 1

Сторонние сборки могут отсутствовать в GAC, см. статью MSDN Как Runtime Locates Assemblies для набора правил. Или попробуйте SysInternals FILEMON.

Ответ 3

Сборка и поиск путей Fusion довольно сложны. Я скажу, что обычно .NET будет разрешать сборку из одного из двух мест:

  • Либо он найдет его в локальном каталоге, например, в текущем каталоге, подкаталоге bin или в другом месте, заданном логикой привязки сборки Fusion, или

  • он найдет его в глобальном хранилище GAC, где сборки могут быть зарегистрированы и просмотрены по имени, версии и парам других атрибутов.

Чтобы ответить на ваш конкретный вопрос о каталоге "bin", если вы используете ASP.NET(который я предполагаю из вашей ссылки на web.config), то да, вам не нужно включать путь - ASP.NET позаботится о том, что ему нужно сделать, чтобы заставить .NET искать сборки в каталоге "bin".

Ответ 4

Некоторые из сборников .Net расположены в папке установки .Net

Например,

C:\Program Files (x86)\Reference Сборки \Microsoft\Framework.NETFramework\v4.0

Внутри сидят собрания. В .NETFramework на одном уровне вы найдете разные версии .NET и их соответствующие сборки.

Ответ 5

Короткий ответ: это зависит от многих вещей. В структуре есть правила для того, как он загружает сборки. Однако вы можете переопределить это, используя различные файлы конфигурации (machine.config и т.д.). Чтобы узнать, где ваши сборки действительно живут в конкретной системе, используйте Assembly Binding Log Viewer. (Это часть платформы SDK. Просто откройте командную оболочку SDK и запустите fuslogvw.exe.)

Ответ 6

Сборка может быть найдена в основном в любом из следующих мест:

  • GAC - C:\Windows\Assembly\GAC (Microsoft и третьими лицами случаев)
  • Установочная папка (большая часть сторонние элементы управления).

Вы можете получить путь и другую информацию о сборке, щелкнув правой кнопкой мыши на сборке в ссылках на проект и выбрав "Свойства".