Методы управления исходным кодом - PullRequest
5 голосов
/ 28 февраля 2010

За последние годы я написал довольно много программного обеспечения, большинство из которых, как правило, используют одну или несколько общих библиотек.(Самая распространенная библиотека, которую я использую для вызова хранимых процедур SQL и возврата массивов объектов)

Меня не устраивает способ управления библиотеками, и я ищу предложения по улучшениюкак я работаю.

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

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

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

Есть ли лучший способ работы, так что у меня есть только одна мастер-копия этой библиотеки, которая соответствует всем решениямподелиться, а не каждое решение, имеющее свою собственную копию проекта библиотеки?

Ответы [ 4 ]

5 голосов
/ 28 февраля 2010

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

В visual studio щелкните правой кнопкой мыши проект и нажмите «Добавить ссылку», затем выберите «Обзор»"вкладка и найдите бинарный файл вашей библиотеки.

(Вам, очевидно, потребуется распространять сборку библиотеки вместе с вашим приложением)

2 голосов
/ 28 февраля 2010

Ваше чувство абсолютно верно. Должен быть только один мастер библиотеки источник .

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

Вот пример структуры в хранилище

/LibraryX            <- product root
   ../branches
   ../tags
   ../trunk          <- solution folder
       ../LibraryX   <- project folder
       ../lib        <- thirdparty libraries used by LibraryX

/ProductY            <- product root
   ../branches
   ../tags
   ../trunk          <- solution folder
       ../ProductY   <- project folder
       ../lib        <- thirdparty libraries 
                        used by ProductY, e.g. a copy of LibraryX.dll

Итак, в проекте ProductY вместо того, чтобы включать копию проекта LibraryY, вы добавляете ссылку на LibraryX.dll, находящуюся в папке lib.

1 голос
/ 28 февраля 2010

Вы должны просто построить dll с вашей библиотекой, а затем просто сослаться на нее

Ссылки> Добавить ссылку в VS.

1 голос
/ 28 февраля 2010

Я бы предложил собрать вашу библиотеку в dll, которую можно добавить как ссылку на любой другой проект, над которым вы работаете. Тогда вам не нужно копировать исходные файлы везде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...