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

Где вы размещаете свои сторонние библиотеки?

У меня есть сборка .dll, например HtmlAgilityPack и MoreLinq. Где я должен помещать эти файлы? Я обычно бросаю их где-то в папку Projects, но потом я всегда копаю их. Есть ли стандартное место для их размещения?

4b9b3361

Ответ 1

Нет стандартного места для их размещения, но убедитесь, что вы:

  • Поместите их в одном месте.
  • Включите их в исходный контроль.

Я поместил всю требуемую dll в каталог верхнего уровня в моем решении под названием "Зависимости", параллельно папкам проекта. Я имею их в исходном контроле, так что, когда новые разработчики проверяют решение, все это компилируется и работает сразу. Это единственный способ пойти.

Я включаю только файлы .dll, абсолютно необходимые. Это облегчает, что хорошо, но тогда, когда я нахожу какую-то другую часть MVC Contrib или что-то еще, что мне нужно, мне нужно найти распакованный каталог, который может даже не быть на моем компьютере! Другие поместили целые каталоги библиотек (readme.txt и все) как часть их исходного управления, связанного с решением. Это гарантирует, что у вас и будущих разработчиков будет все, что им нужно, но добавляет немного мертвого веса. Либо хорошая стратегия.

Ответ 2

Наличие папки "Lib" на том же уровне, что и исходные проекты, является обычным способом.

Честно говоря, это не те зависимости, которые у меня есть у моих проектов, которые мне трудно справиться, это зависимости, которые имеют зависимости. Я хотел бы просто упомянуть NHibernate, Castle Windsor и различные объекты Castle Windsor. Получение всех тех, кто играет вместе в моем последнем проекте, стоило мне много времени.

Для проектов с открытым исходным кодом я также хотел бы иметь исходный код, потому что иногда его полезно отлаживать в исходном коде. (И иногда, потому что документация настолько бедна, вам нужно прочитать исходный код, чтобы узнать, как это работает). Я видел проекты VS, упорядоченные так, что проект ссылается на DLL одновременно, VS знает, где найти исходный код, поскольку я пишу, я не могу вспомнить, как это сделать.

Итак, папка Lib для DLL работает для меня; Я часто называю это "Общие зависимости".

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

Ответ 3

В папке под вашим каталогом решений, например. "внешняя" или "библиотека". Таким образом, ваша система непрерывной интеграции (или другие члены команды) может сделать притяжение одного корня из вашей системы управления версиями и иметь все, что им нужно.

В SVN используйте svn: externals, чтобы вытащить этот каталог из другого корня, чтобы вы могли легко обмениваться библиотечными DLLS (и библиотечными проектами) между решениями.

Ответ 4

В офисе у нас есть доля в сети для ссылок asseblies. Это могут быть сторонние или собственные собрания, которые могут быть разделены между проектами.

Мне также не нравится идея размещения файлов dll в контроле источника. Если все разработчики имеют доступ к этому ресурсу, все будет работать нормально.

Ответ 5

Каталог визуальной студии в My Documents кажется логичным местом для их размещения. Я не знаю, насколько это лучше или что-то не так, но, по крайней мере, все библиотеки находятся в одном месте.

%USERPROFILE%\My Documents\Visual Studio XXXX\Libraries

Ответ 6

В моей компании мы размещаем все наши общие сборки DLL на сетевой диск в папке Assemblies. Оттуда мы используем SyncToy, чтобы отразить изменения между этой папкой и папкой на наших локальных машинах разработки (в моем случае C:\Assemblies с подпапками для разные версии или полезные сторонние сборки). Использование функции "Reference Paths" в проектах Visual Studio упрощает выбор различных версий сборки, основанных только на локациях.

Для проектов дома я бы определенно пошел с идеей, упомянутой Джеффом М, поместив их в папку Visual Studio под My Documents.