Зачем создавать папку в своем проекте для хранения dll, на которые вы ссылаетесь? - PullRequest
0 голосов
/ 30 июня 2010

Я работаю над установкой инфраструктуры управления контентом N2 в проекте веб-сайта ASP.NET.

В инструкциях на http://n2cms.com/Documentation/Content-enabling%20an%20existing%20site/The%20first%20content%20class.aspx рекомендуется создать папку lib для хранения необходимых библиотек. На следующем шаге меня попросят сослаться на те же самые библиотеки DLL, которые предположительно добавят их в папку bin! Таким образом, мой проект будет содержать дубликаты копий библиотеки.

Кто-нибудь может подсказать, почему была сделана эта рекомендация?

Спасибо

David

Ответы [ 2 ]

2 голосов
/ 30 июня 2010

В проекте не будет дубликатов.Папка bin - это место, куда выводятся данные, но она не считается частью вашего реального проекта и не проверяется в системе контроля версий.

Помещая библиотеки DLL в папку lib, вы облегчаете распространение их вместе с исходным кодом вашего приложения и гарантируете, что кто-либо еще, кто получит копию вашего кода, отправит ли вам его или захватитэто из управления исходным кодом, имеет необходимые библиотеки DLL для запуска приложения.Это также гарантирует, что они используют ту же версию компонентов, которые вы использовали для создания программного обеспечения.Если для библиотек DLL требуется лицензирование, это может быть другой историей, поскольку любому, кто хочет скомпилировать проект, потребуется компонент лицензирования для библиотек DLL, установленных на их рабочей станции.

По сути, основное преимущество, которое я вижу, заключается в том, что он сохраняетвсе компоненты, используемые вашим кодом, находятся в одном месте, что делает ваш проект единым целым.

1 голос
/ 30 июня 2010

Если вы добавите библиотеки DLL в папку bin, то однажды решите очистить ваш проект, они исчезнут ... Поэтому рекомендуется хранить эталонные библиотеки DLL в папке bin.

На самом деле существует довольно много способов, которыми DLL могут быть случайно удалены из папки bin. Просто представьте папку bin как временное местоположение, содержимое которого может быть обновлено в любой момент.

Во время процесса сборки все соответствующие файлы будут скопированы в папку bin, включая файлы конфигурации, файлы содержимого, помеченные для копирования в выходную папку, и, конечно, любые ссылочные библиотеки DLL, помеченные для Copy Local.

Если дублирующие местоположения вас беспокоят, вы можете сохранить библиотеки DLL в другой папке и просто добавить путь к папке с ними в PrivateBinPath текущего AppDomain, что обеспечит их загрузку без необходимости Copy Local собственность.

...