Как правило, структура моих проектов выглядит так (как минимум):
projectname
- trunk
- src
- lib
- support
- docs
- releases
Папка trunk
содержит копию источника, над которым я сейчас работаю.Кроме того, есть каталог 'lib', который содержит все сторонние сборки, на которые ссылается мой проект.
(я ссылаюсь на сборки в этой позиции).
Папка "Releases" содержит ветвиствола.Например, когда выпущен v1, из ствола берется ветвь, так что у меня есть копия исходного кода и всех его зависимостей, необходимых для сборки версии 1 приложения.(Это удобно для исправления ошибок. Исправьте ошибку в этой ветке, объедините исправление со стволом, перестройте эту ветку, и у вас будет фиксированная версия v1 вашего приложения.)(Да, также ссылки на сборки).Таким образом, очень легко, если другой коллега также должен работать над проектом.Он просто получает последнюю версию из системы управления исходным кодом, и у него (или у нее) есть все для компиляции и сборки).
(Обратите внимание, что это также верно, если вы используете что-то вроде CruiseControl для непрерывная интеграция ).