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.)