ASP.NET - каталог bin против добавления сборки в web.conf

Я относительно новичок в программировании ASP.NET (но не программирование в целом), и я просматривал проект, который был передан мне. В этом проекте есть каталог bin, содержащий множество различных DLL-файлов.

Затем в файле web.conf внутри структуры сборок (в XML) добавляется множество других сборок.

Я выполнил поиск как по SO, так и по Google в целом, и до сих пор не могу понять, какая разница между ними. Один путь "лучше", чем другой? Любые разъяснения, которые могут быть предоставлены, будут наиболее цениться.

Благодарю.

2 ответа

Решение

Существует несколько способов ссылки на сборки (обычно DLL) в приложении ASP.NET:

  1. Добавьте DLL в директорию bin вашего приложения. Это создает неявную ссылку в каждом файле кода и файле ASPX в вашем приложении на эту DLL. Это означает, что код внутри файла ASPX или внутри файла CS в App_Code может использовать типы в этой DLL.

  2. Добавьте ссылку на DLL в <assemblies> раздел в web.config. Посмотрите MSDN для деталей о синтаксисе. Как правило, существует несколько файлов web.config, которые применяются к конкретному веб-приложению. Само приложение может иметь несколько файлов web.config (например, web.config в определенной папке может добавлять свои собственные ссылки). Существует также глобальный web.config (или machine.config), в котором есть ссылки, доступные для всех приложений ASP.NET на компьютере.

  3. Использовать <%@ Assembly Name="" %> директива в определенном файле ASPX (или ASCX или MASTER). Посмотрите MSDN для деталей о синтаксисе.

Ссылки в данном файле в приложении ASP.NET представляют собой комбинацию из указанных выше элементов.

Причина, по которой вы должны ссылаться на сборки, заключается в том, что файлы ASPX (как и сами файлы CS и VB) в конечном итоге компилируются компилятором C# или VB. Чтобы эти компиляторы знали, какие типы вы хотите использовать, им нужно знать, какие сборки содержат эти типы.

Каталог bin - это копия всех dll, созданных и на которые ссылается ваш проект. Когда веб-приложение запущено, оно ищет в каталоге bin физические библиотеки DLL, необходимые для выполнения веб-приложения.

Другие вопросы по тегам