Ссылка на проект против DLL. Что лучше? - PullRequest
38 голосов
/ 15 июня 2010

Я знаю, что есть другие вопросы по этому предмету, и я посмотрел на этот вопрос , но я хотел бы увидеть немного больше обсуждения и информации по обеим сторонам - это такРекомендуется добавлять проект в решение и ссылаться на проект или добавлять ссылку на .dll?

Ответы [ 5 ]

28 голосов
/ 15 июня 2010

Это не большой выбор.Если у вас есть решение с обоими проектами, то нет смысла не использовать ссылку на проект.Если у вашего решения нет проекта, то у вас есть для использования ссылки на сборку.

Таким образом, реальный вопрос, вероятно, должен состоять в следующем: создать решение с обоими проектами?Да, если проект все еще находится на стадии отладки и требует исправления ошибок.

17 голосов
/ 15 июня 2010

Если у вас есть только DLL, то вы застряли с ссылкой на DLL (очевидно).

Если у вас есть источник, то обычно лучше использовать ссылку на проект. Могут быть случаи, когда у вас есть служебная библиотека, которая никогда не изменится, но если есть малейшая вероятность того, что вам понадобится исправить ошибку, тогда наличие ссылки на проект значительно упростит отладку.

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

Сводка - Справочник по проекту по сравнению с DLL

Ссылка по проекту

  • код виден
  • находит все ссылки, например в классе (потому что код виден)
  • лучше для тестирования (всего)
  • лучше для редизайна кода (влияние)

Справочник по DLL

  • код скрыт
  • разделение, например каркас и проект (для доставки каркаса)
  • более быстрая компиляция (поскольку DLL уже скомпилирована)
2 голосов
/ 15 июня 2010

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

0 голосов
/ 17 мая 2013

Относительно архитектуры вашего проекта, вы всегда должны придерживаться проектов в вашей проблемной области. Вы должны использовать GAC, если это применимо к вашей среде.

...