Создайте папку решения с MSBuild - PullRequest
7 голосов
/ 06 июня 2011

у нас есть файл решения , содержащий несколько папок решения : библиотеки, юнит-тесты, приложения ...

с VS2010 мы можем создавать только проекты из данной папки, щелкнув по ней правой кнопкой мыши и используя «build» или «rebuild».

Это идеально для рабочих станций разработчиков, и мы хотели бы сделать то же самоена сервере непрерывной интеграции, который использует MSBuild .

Итак, можем ли мы создать папку решения с помощью MSBuild?

Или нам придетсясоздать отдельное решение для каждой папки?

Заранее благодарим за любую помощь.

ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ : вывод из приведенных ниже ответов заключается в том, что они не являются встроеннымиспособ сделать это, но некоторые обходные пути:

  • создать выделенное решение только с выбранными проектами,
  • использовать выделенный csproj , которыйсоздаст выбранные проекты,
  • добавит новый проект, который будет ссылатьсяВсе выбранные проекты в существующем файле решения.

Я решил использовать выделенный файл решения, так как это менее навязчивый и хитрый способ, хотя и не более гибкий (выделенныйРешение csproj должно предлагать полный контроль).

Ответы [ 2 ]

5 голосов
/ 07 июня 2011

Да, вы можете создавать папки решений, используя MSBUILD

msbuild "framework.sln" /t:First\Project:Build

Построит проект в папке с именем First, HOWEVER папки на диске и папки с решениями должны совпадать (я попробовал его для своего решения, где они не сначала)

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

Также см .: http://msdn.microsoft.com/en-us/library/ms164311.aspx

2 голосов
/ 07 июня 2011

Краткий ответ:

Да , если вы хотите создать определенный набор проектов (сгруппированных в решении VS) с простым MSBuild вам нужно будет создать отдельный MSBuild .proj для каждого конкретного набора проектов, которые вы хотите построить.

Вам не нужно будет создавать (и поддерживать) решения VS для поддержки вашей сборки, но ви конец тот же (решение MSBuild .proj против VS).

У меня похожий сценарий с набором из 60+ проектов .NET (.btprpj BizTalk).Для разработки в VS эти проекты в настоящее время организованы в виде 12 решений VS.

Для автоматической сборки и развертывания я создал набор из 50+ сценариев MSBuild .proj, предназначенных для каждого отдельного компонента (или набора компонентов), который мне нужен.

MSBuild предлагает множество возможностей для автоматизации всего, что связано с фактической сборкой проектов VS (экспорт из VCS и т. Д.).

...