Я использую подрывную деятельность и NAnt (и Visual Studio IDE)Nant: Как структурировать SVN: внешние для построения библиотек классов, которые ссылаются на третьем участник библиотеки
Я следующий предложенную структуру проекта в http://blog.jpboodhoo.com/NAntStarterSeries.aspx, который выступает автономные каталоги subversion, где разработчик может выполнить проверку и сразу же построить проект за один шаг.
структура Мой репо как:
/Repo
/MainProject
/trunk
/doc <-- documentation
/lib <-- binary-only DLLs
/src <-- source code for MainProject
/tools <-- holds tools like nant, nunit, etc
...
/ClassLibrary1
/trunk
/doc
/lib
/src
/tools
...
/ClassLibrary2
/trunk
/doc
/lib
/src
/tools
Что не ясно, каким образом структурировать проект, который имеет класс библиотеки, которые в свою очередь, ссылки библиотеки DLL третья сторона и сами.
В настоящее время у меня есть главный проект с рабочей директорией как
Пример:
/MainProject
/build
/lib
/src
/MainProject
/ClassLibrary1 <-- svn external to svn://server/repo/ClassLibrary1/trunk/src
/ClassLibrary2 <-- svn external to svn://server/repo/ClassLibrary2/trunk/src
/tools
...
При создании MainProject, я компилировать библиотеки классов и вывод библиотеки DLL в папку сборки. Однако сами библиотеки классов имеют сторонние библиотеки DLL с двоичными именами, которые они ссылаются.
Мои вопросы, чтобы построить MainProject Мне нужно каким-то образом получить сторонние DLL из библиотек классов в вывод сборки. Как мне это сделать?
Мысли: 1. Должен ли я хранить копии этих сторонних библиотек DLL в папке с библиотекой MainProject? 2. Или должна ли моя svn: внешняя ссылка быть в trunk проекта библиотеки классов, а не в src, чтобы я мог получить доступ к папке lib библиотеки классов? 3. Должен ли я использовать функцию subversion 1.6 для svn: externals для отдельных файлов?
«Если вы сохраняете отдельную копию требуемой библиотеки dll, то вы действительно не разрешаете ссылочную библиотеку определить, что ему нужно для себя » Это имеет смысл. Я полагаю, что мое сопротивление этому проверяет «дополнительные» папки библиотеки. Тем более, что я храню инструменты в Библиотеке. Если Main Project ссылается на 10 библиотек классов, то у меня будет 10 копий nant, скрипты библиотек и т. Д. Но, может быть, это пример беспокойства о дискового пространства, когда нет необходимости? – User
Чем больше я думаю об этом, тем более ясным представляется приведение в багажнике библиотеки как svn: external. Я просто хотел получить отзывы о том, как это делают другие. – User
Я поместил свойство svn: externals, чтобы захватить библиотеки классов в папке src MainProject. Это имело общий смысл, когда я хватал только каталог trunk/src библиотек классов. Однако, если я переключусь на захват ствола библиотеки классов, мне интересно, все-таки имеет смысл вытащить это в каталог src. В какую директорию вы помещаете свойство externals? – User