Лучшая практика: среда для совместной работы, Bin Directory, SVN
Каковы лучшие методы проверки каталогов BIN в среде совместной разработки с использованием SVN? Должны ли ссылки на уровне проекта быть исключены из регистрации? Проще просто добавить все каталоги bin?
Я занимаюсь разработкой большого количества сайтов DotNetNuke, и кажется, что в среде с несколькими разработчиками всегда очень сложно правильно настроить среду.
Конечная цель (конечно) состоит в том, чтобы иметь новый разработчик, извлекающий ствол из SVN, восстановить базу данных DNN и заставить все это просто "работать"...
5 ответов
Любые сборки, которые должны быть в GAC, должны оставаться в GAC. Это включает в себя System.web.dll или любые другие сторонние библиотеки DLL, которые вы будете развертывать в GAC в рабочей среде. Это означает, что новый разработчик должен будет установить эти сборки.
Все остальные сторонние сборки должны быть ссылками через относительный путь. Моя типичная структура:
-Project
--Project.sln
--References
---StructureMap.dll
---NUnit.dll
---System.Web.Mvc.dll
--Project.Web
---Project.Web.Proj
---Project.Web.Proj files
--Project
---Project.Proj
---Project.Proj files
Project.Web и Project ссылаются на сборки в корневой папке /References. Эти.dll проверены в подрывной деятельности.
Кроме того, */bin */bin/* obj должен быть в вашем глобальном пути игнорирования.
При такой настройке все ссылки на сборки либо через GAC (так должно работать на всех компьютерах), либо относительно каждого проекта в вашем решении.
Это конкретный вопрос.Net?
Как правило, не рекомендуется регистрировать что-либо автоматически созданное из файлов, которые уже находятся в SCM. Все это идеально создается как часть вашего автоматического процесса сборки.
Если bin
Каталог, на который вы ссылаетесь, содержит сторонние двоичные файлы, а не сборку вашего проекта, игнорируйте (downvote?) этот совет.
Tree Surgeon - отличный инструмент, который создает пустое дерево разработки.NET. Он был изменен за многие годы использования и реализует множество лучших практик.
Maven очень помогает с этой проблемой, когда я пишу код Java. Мы передаем файл pom.xml в scs, а репозиторий maven содержит все наши зависимости. Для меня это кажется хорошим способом сделать это.
Мы придерживаемся практики использования каталога поставщиков, который содержит все заголовки и двоичные файлы, относящиеся к конкретному поставщику. Цель состоит в том, чтобы любой мог создать продукт, просто проверив его и запустив какой-нибудь скрипт сборки верхнего уровня.