Лучшая практика:Среда для совместной работы, каталог Bin, SVN
-
08-06-2019 - |
Вопрос
Каковы наилучшие методы проверки каталогов BIN в среде совместной разработки с использованием SVN?Следует ли исключить ссылки на уровне проекта из проверки?Проще просто добавить все каталоги bin?
Я разрабатываю множество сайтов DotNetNuke, и кажется, что в среде с несколькими разработчиками всегда стоит огромная задача правильно настроить среду.
Конечная цель (конечно) — заставить нового разработчика извлечь транк из SVN, восстановить базу данных DNN, и все это просто «работает»…
Решение
Любые ассамблеи, которые, как ожидается, будут находиться в 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-файлы проверяются в Subversion.
Кроме того, */bin */bin/* obj должен находиться в вашем глобальном пути игнорирования.
При такой настройке все ссылки на сборки осуществляются либо через GAC (поэтому должно работать на всех компьютерах), либо относительно каждого проекта в вашем решении.
Другие советы
Это конкретный вопрос .Net?
Обычно лучше всего не возвращать ничего, что автоматически создается из файлов, уже находящихся в SCM.Все это в идеале создается как часть процесса автоматической сборки.
Если bin
Каталог, на который вы ссылаетесь, содержит сторонние двоичные файлы, а не сборку вашего проекта, игнорируйте (понизьте?) этот совет.
Древесный хирург — отличный инструмент, который создает пустое дерево разработки .NET.За годы использования он был усовершенствован и в нем реализовано множество лучших практик.
Maven очень помогает с этой проблемой, когда я пишу код на Java.Мы фиксируем pom.xml в scs, а репозиторий maven содержит все наши зависимости.Мне кажется, это хороший способ сделать это.
Мы следуем практике использования каталога поставщиков, который содержит все заголовки и двоичные файлы, специфичные для конкретного поставщика.Цель состоит в том, чтобы каждый мог создать продукт, просто проверив его и запустив сценарий сборки верхнего уровня.