2013-03-07 6 views
9

У меня есть большое решение, которое создается ежедневно в TFS. Решение охватывает множество логических вспомогательных решений - например ApplicationA, которое состоит из проектов A, B, C, D; ApplicationB, который состоит из проектов A, B, E, F, ApplicationC, который состоит из проектов A, C, G, H.Организация большого решения C#

В настоящее время мы делаем копию файла решения сборки локально и выгружаем проекты, которые нам не нужно строить для работы над проектом, поэтому для ApplicationA мы выгрузили все, кроме A, B, C, D.

Другим подходом было бы создание нескольких конфигураций решений, которые только создавали проекты A, B, C, D для ApplicationA, но я боюсь, что это будет громоздким, а файл .sln окажется огромным.

Проблема в том, что многие проекты объединены в один пакет wix и установлены вместе - поэтому основной .sln-файл имеет смысл, особенно с точки зрения сборки, но также и отладки.

Поддержание нескольких файлов решений не кажется правильным, так как при добавлении новых проектов нам необходимо добавить их к нескольким решениям. Так что, возможно, способ настройки - это путь, но он тоже не так хорош.

Есть ли у кого-нибудь опыт аналогичного сценария и как вы его обходились?

+1

«Но сохранение нескольких файлов решений невозможно, так как при добавлении новых проектов нам нужно добавить их в несколько решений».? Неужели это так обременительно? Я всегда использовал несколько решений (при работе с большим количеством проектов) и никогда не находил это очень болезненным. –

ответ

11

Это звучит, как это имело бы смысл иметь пять решений файлы:

  • Master.sln, содержит все проекты
  • ApplicationA.sln, содержит проекты, A, B, C, D
  • ApplicationB .sln, содержит проекты, A, B, E, F
  • ApplicaitonC.sln, содержит проекты A, C, G, H

Это прекрасно, чтобы иметь все Тхо se файлов решений в одном и том же каталоге верхнего уровня.

Но сохранение нескольких файлов решений невозможно, так как при добавлении новых проектов нам необходимо добавить их к нескольким решениям.

Почему это проблема? Вам нужно разработать, какие приложения требуется проекту в любом случае ... Создайте проект в главном решении (которое обязательно понадобится), а затем используйте «Добавить существующий проект» для тех решений, которые в нем нуждаются. Это действительно не так много работы - и я бы не ожидал добавления новых проектов, которые часто так или иначе. (Если это так, это указывает на большую проблему.)

+0

Спасибо, Джон - это то, что я чувствовал, было бы правильным путем, просто идея сделать это через конфигурацию была выдвинута, поэтому я хотел исследовать. (BTW - любил твою книгу и видео на видеороликах дизайна C# :) – NDJ

+1

@NDJ: Конфигурации тоже работают, но это боль в других отношениях. (Например, я использую конфигурации для Noda Time при построении разных версий одних и тех же сборок.) Чтобы сосредоточиться только на нескольких проектах, я думаю, что отдельное решение имеет больше смысла. –

Смежные вопросы