2010-03-09 2 views
1

TFS 2008 и общие библиотекиTFS 2008 и общие библиотеки Структура папок

Я создал проект команды под названием «Общая библиотека», которая будет проходить код, используемый в многочисленных различных командных проектов по всему TFS. Для аргумента, скажем, у нас есть две различные библиотеки в рамках проектов «Общая библиотека», MailProject и LoggingProject. Другие проекты в TFS будут использовать двоичное представление этих проектов через ветвление, а не фактический исходный код.

Каков наилучший способ настройки структуры папок для этого проекта команды? Добавить проект в «Общая библиотека» и просто «включить» папку bin/release в рамках проекта?

Я видел несколько примеров людей, создающих отдельную папку «Развертывание». Я предполагаю, что это синоним с папкой bin/release?


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

В настоящее время каждый проект имеет DLL, включенную в проект. Например, используя почтовый модуль, многие проекты нуждаются в возможности отправлять почту. Общий модуль очень стабилен и в основном статичен.

Однако, если есть изменения в почтовом модуле. Кажется, что будет лучший способ, чем проверить каждый проект и обновить dll. Можно ли разрешить TFS захватывать последний почтовый модуль в любое время, когда вызывается «получить последнюю»? Либо явно, либо неявно.

ответ

0

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

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

У TFS нет понятия, аналогичного «внешним» SVN, хотя, поэтому, если вы включаете ветку из разделяемых библиотек в проекте и, чем ветвь, это проект, очень сложно правильно распространять изменения.

Я полагаю, вы также можете использовать Get task в сборке и получить последнюю версию DDL в текущем проекте от другого, но проверьте, можете ли вы указать рабочее пространство другого проекта (я не устал, а MSDN - здесь несколько расплывчатый). Возможно, вам потребуется отдельное рабочее пространство для общего проекта.

Еще одна альтернатива - публиковать библиотеки DLL для общих компонентов в известном месте при каждой сборке общих библиотек и для отдельных сборников, чтобы получить любую версию из этого общего местоположения (общий сетевой ресурс) даже через задачу «Копировать» , Это упрощает и может вызвать проблемы с управлением версиями общих компонентов, но в простом случае должно работать достаточно хорошо.

+0

Мы не хотим, чтобы исходный код был доступен в других решениях. В настоящее время каждый проект имеет DLL, включенную в проект. Например, используя почтовый модуль, многие проекты нуждаются в возможности отправлять почту. Общий модуль очень стабилен и в основном статичен. Однако, если есть изменения в почтовом модуле. Кажется, что будет лучший способ, чем проверить каждый проект и обновить dll.Можно ли разрешить TFS захватывать последний почтовый модуль в любое время, когда вызывается «получить последнюю»? Либо явно, либо неявно. – Doerr

+0

Я добавил еще несколько идей. Извините, я не совсем понял вопрос вначале - этот комментарий сделал его намного яснее. – mfloryan

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