Как управлять ссылками в SVN / Visual Studio? - PullRequest
7 голосов
/ 28 сентября 2010

В течение долгого времени в поисках способа управления ссылками я не нашел ни одного идеального способа.

Основные проблемы:

1-) Должен ли я включить все проекты, которыеЯ использую в том же решении и ссылаться на проект?Или ссылаться только на файл dll?

2-) Если мне нужно ссылаться на файл dll, лучший способ - создать ReferencedAssemblies внутри каждого проекта или главной папки в корне svn?

3-) Его нормально вставлять и ссылаться на DLL внутри папки bin моего проекта?

4-) Его нормально добавлять и фиксировать DLL внутри папки bin моего проекта?Таким образом, когда новый devoloper извлекает проект, он прекрасно компилируется, но не является поведением по умолчанию в Visual Studio, все элементы управления исходным кодом игнорируют bin и obj по умолчанию, просто добавляя файлы .refresh (для проекта веб-сайта)

Кто-то может мне помочь?

Ответы [ 3 ]

3 голосов
/ 28 сентября 2010

1) Если вы включаете в свое решение проекты, которые уже зарегистрированы в другом месте, вы можете изменить привязку SVN для этого проекта на уровне решения в Visual Studio.(Файл> Контроль источника> Изменить контроль источника).Вы должны изменить его так, чтобы он указывал на то, где он находится в вашем репозитории SVN.

2) Если у вас много разработчиков на разных машинах, желающих использовать одни и те же библиотеки, вероятно, проще найти общее место длявсе ваши сторонние библиотеки / сборки.Нет смысла копировать их повсюду в вашем SVN-хранилище.

3) Нет, обычно это не нормально.Я бы избегал этого (если у кого-то нет веской причины для этого).

4) Никогда не фиксируйте папки вашего бина.Поведение по умолчанию таково по причине.Файлы .refresh являются побочными продуктами старых проектов Web Site , и они в порядке.

2 голосов
/ 28 сентября 2010

1) В типичном сценарии да, вы должны ссылаться на все свои проекты. Но вы должны принять решение в соответствии с частотой изменений, внесенных в упомянутые проекты. Например, если у вас есть библиотека с открытым исходным кодом, лучше включить ее в сборку, потому что вы, вероятно, не будете часто менять этот код.

2) Типичным подходом является создание отдельного отдельного каталога в корневом каталоге SVN и размещение там сборок в разных подпапках в соответствии с типом сборок. Вот как выглядит моя текущая папка: alt text

3) Нет, лучше ссылаться на сборки из какой-то другой папки bin . Все ссылочные сборки будут скопированы в bin в процессе сборки. Также обратите внимание, что целью * .refresh файлов в папке bin является предотвращение необходимости копировать новые версии самостоятельно.

4) Нет, вам никогда не следует фиксировать папку bin, потому что вы можете положиться на * .refresh файлы для веб-сайтов и просто забыть об этой проблеме для других типов проектов.

0 голосов
/ 28 сентября 2010

1) Я бы сказал, что это зависит от вашей конкретной ситуации, тем более что Visual Studio довольно гибко относится к тому, какие проекты включены в решения.(Он не привязан к структуре каталогов.)

У нас есть пара приложений, в которых есть одно решение с несколькими проектами, содержащимися внутри (для каждого «куска»).

2, 3,4) Для ссылок и включения файлов в проект, почему бы просто не использовать функциональность, встроенную в Visual Studio?Добавление ссылок таким способом добавляет элементы в ваши файлы csproj (vbproj).

(Согласно моим исследованиям, если вы не ссылаетесь на проект, являющийся частью решения, поместите библиотеки DLL в каталог, в котором всекоманда может получить доступ и использовать это при добавлении ссылки. В файле проекта это выглядит так:

<Reference Include="Elmah">
    <HintPath>\\pathInformation\shared assemblies\ELMAH 1.1 32-bit\Elmah.dll</HintPath>
</Reference>

)

Это также означает, что вам не нужно фиксироватьбиблиотеки DLL;если что-то изменится, файл проекта будет соответствующим образом обновлен.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...