Добавление сторонних библиотек в систему управления версиями Visual Studio

Это проблема, которая меня преследует какое-то время, и я просто не нашел для нее хорошего решения (без каламбура).

Я использую Visual Studio 2010 с Subversion и Ankhsvn. Он работает очень хорошо, однако моя самая большая проблема в том, что он извлекает и управляет только файлами, которые «включены в проект». Это замечательно во многих ситуациях, но отстой, когда вам нужна папка с объектами, которые вы хотите включить в решение, но не хотите иметь в самом проекте (в данном случае веб-проекте).

В этом случае я хочу включить некоторые сторонние библиотеки DLL в систему управления версиями (чтобы их можно было обновлять при синхронизации с системой управления версиями). Я не хочу, чтобы разработчикам приходилось устанавливать сторонние dll отдельно. Обычно происходит то, что вы ссылаетесь на библиотеки DLL из другого места, и они копируются в вашу папку bin во время компиляции.

Я не хочу включать их в проект, потому что я не хочу, чтобы они копировались на веб-сервер, когда я публикую сайт (кроме как через каталог bin, где они должны быть). Я подумал о создании для них отдельного проекта, но это создало бы бесполезную DLL без цели, которая затем была бы скопирована в папку bin, потому что на нее есть ссылка.

Я также пытался зарегистрировать их из папки bin, но это вызвало ряд проблем, когда файлы не синхронизировались должным образом, а подрывная деятельность говорила о наличии папки с уже имеющейся версией и т. Д. Это похоже на подрывную деятельность или проблема анхсвн, а не визуальная студия. Таким образом, я стараюсь не затрагивать папку bin системой управления версиями.

Как вы решили эту проблему в своих проектах?


person Erik Funkenbusch    schedule 26.09.2010    source источник


Ответы (1)


Вот как мы это делаем в нашем проекте.

Структура папки

У нас есть папка SourceCode, в которой есть подпапки для проектов, содержащих код.

Кроме того, у этого есть папка с именем Library, в которой есть правильная версия любых сторонних dll, которые мы используем. Эта папка находится в системе контроля версий, и, следовательно, у всех всегда есть правильная версия сторонних dll.

Все ссылки в проектах на сторонние библиотеки DLL относятся к этой папке Библиотеки.

Поскольку у всех есть папка SourceCode на своем компьютере, она работает без проблем.

РЕДАКТИРОВАТЬ: добавлено изображение папки решения с содержимым библиотеки Папка решения VS

person Jagmag    schedule 26.09.2010
comment
Это вообще не отвечает на мой вопрос. Я специально сказал, что не хочу этого делать, потому что я не хочу, чтобы dll отправлялась на сервер в этой папке при публикации. Альтернативой этому является указание, что они не будут включены в проект, что означает, что они не синхронизируются через ankhsvn и потребуют синхронизацию с чем-то вроде Tortiose, что затруднительно для синхронизации в двух местах. - person Erik Funkenbusch; 26.09.2010
comment
Вы не публикуете папку. Вы публикуете проект. Поэтому я не совсем понимаю, о чем вы говорите. Я не использую TortioseSVN, только анхсвн. Я не хочу использовать оба. Таким образом, весь контроль версий должен осуществляться с помощью Visual Studio. - person Erik Funkenbusch; 26.09.2010
comment
Итак, если проект вашего веб-приложения находится в папке веб-сайтов, как вы синхронизируете дерево исходных текстов? Я предполагаю через что-то вроде TortioseSVN. В моем случае я не хочу использовать TortioseSVN для синхронизации, я хочу использовать только Ankhsvn. И, поскольку AnkhSVN синхронизирует только файлы, которые включены в решение Visual Studio ... Вы уже поняли мою точку зрения? - person Erik Funkenbusch; 26.09.2010
comment
Я уже пробовал это. Папки решений не являются настоящими папками, они могут содержать только другие элементы решения (например, проекты). Таким образом, вы не можете добавлять к ним физические вещи, такие как папки и сборки. - person Erik Funkenbusch; 26.09.2010
comment
@Mystere Man - вы имеете в виду что-то подобное. i56.tinypic.com/5ugys1.jpg не работает для тебя? Я могу добавлять сборки в папки решений в VS2008. Какую версию VS вы используете? - person Jagmag; 26.09.2010
comment
Ааа ... Когда я пытался добавить файлы в папку решения ранее, я пытался добавить файлы с подпапками, и именно в этом была проблема. Когда я добавил DLL по отдельности, она работает. Спасибо. - person Erik Funkenbusch; 26.09.2010