5

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

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

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

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

Это оставляет мне несколько копий одного и того же проекта библиотеки, размещенного вокруг моей файловой системы (и сервера SVN), и это просто не так.

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

ответ

5

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

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

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

+0

Спасибо. Не могу поверить, что я пропустил что-то такое фундаментальное, после нескольких лет работы в Visual Studio. – Bryan

+0

Не уверен, что это лучший ответ. Добавление двоичного файла означает, что если общий проект изменяется, вам необходимо перекомпилировать его, а затем перекомпилировать все зависимые решения, которые ссылаются на него, что может привести к возникновению проблем с зависимостями.Я бы предложил добавить его как ссылку на проект, а не – zebrabox

+0

@zebrabox: Я не понимаю, не так ли это указано в сообщении Саймона? – Bryan

1

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

2

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

В нашем магазине у нас есть несколько общих библиотечных проектов, используемых несколькими продуктами. Мы рассматриваем эти библиотеки как сами продукты и рассматриваем их соответственно. В частности, когда проекту нужна одна из этих библиотек, мы помещаем скомпилированную версию библиотеки в папку 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.

+0

Это именно та структура, к которой я стремлюсь. Большое спасибо. – Bryan

1

Вы должны просто создать DLL с библиотекой, а затем просто ссылаться на него ..

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

Смежные вопросы