Где хранить сторонние библиотеки? - PullRequest
4 голосов
/ 27 апреля 2010

У меня есть приложение asp.net mvc 2.

Теперь я переопределяю это для работы с Ninject. Все хорошо, кроме одного: где хранить Ninject.dll ??

Я создал каталог lib внутри моего appdir и сделал ссылку на lib/Ninject.dll.

Но, может быть, существуют некоторые общие соглашения о том, как действовать в таких случаях?

Ответы [ 3 ]

4 голосов
/ 27 апреля 2010

ОБНОВЛЕНИЕ: К вашему сведению - Вот ссылка на то, как команда MVC структурирует свой собственный репозиторий .

Как часть моей установки каталога MVC, я помещаю библиотеки вне проекта в их собственную структуру папок и добавляю ссылки на эти библиотеки.

Итак, моя проверенная структура каталогов будет выглядеть примерно так:

Apps
   Project 1
    - Project files 

   Project 2
   - Project files 

Libraries
- LibraryName
-- LibraryVersion

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

Упрощает решение проблем со ссылками на серверы сборки.

НТН

3 голосов
/ 27 апреля 2010

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

  • Библиотека
    • Ninject
      • 1,0
      • 1,5
      • 2,0
    • NHibernate
      • 2.1.0
      • 2.1.2
  • Проект 1
  • Проект 2

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

Для наших собственных внутренних библиотек код хранится в дереве проекта, а библиотеки DLL копируются в ветвь библиотеки. Наши проекты ссылаются на версии релиза.

Эта структура упрощает синхронизацию версий библиотек с открытым исходным кодом (например, Hibernate, Fluent NHibernate и NHibernate Linq).

2 голосов
/ 27 апреля 2010

Соглашение использует эту структуру папок:

  • Проект ствола.
    • сборка
      • Создание сценариев.
    • дБ
      • База данных сотрудников. (вы должны управлять БД с помощью всего кода).
    • документы
      • Документация, спецификация и все, что с этим связано.
    • Lib
      • Ninject
    • ЦСИ
      • ProjectName.Core
      • ProjectName.UI
      • ProjectName.sln
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...