2009-09-30 6 views
22

Я сольный разработчик, работающий с Visual Studio 2008, и изучающий MSBuild, чтобы улучшить мой процесс сборки.Интеграция MSBuild в Visual Studio

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

Где должен быть файл сборки в проекте Visual Studio и как я могу запустить его из среды IDE?

ответ

20

Visual Studio автоматически выполняет MSBuild для проектов, которые он поддерживает.

Если вы щелкните правой кнопкой мыши по проекту и выгрузите его, вы можете отредактировать его в Visual Studio. Перезагрузите (щелкните правой кнопкой мыши по проекту еще раз), заставьте (re) построить, чтобы проверить ваши изменения. Альтернативой является редактирование файла проекта во внешнем редакторе, а Visual Studio обнаружит сохранение и предложение перезагрузить проект для вас.

Похоже, что вы на правильном пути, и если вы планируете писать цели или пользовательские задачи MSBuild, найдите время, чтобы отделить их от вашего текущего проекта, чтобы вы могли повторно использовать их. Однако не изобретайте колесо, но два основных дополнительных проекта MSBuild: MSBuild Community Tasks и MSBuild Extension Pack.

Обновление: Судя по вашему комментарию на ответ Митча, вы также можете рассмотреть возможность добавления в проект нового элемента конфигурации или настраиваемых свойств. Новая конфигурация MSBuild (что-то отличное от по умолчанию Debug/Release) может запускать модульные тесты, сборку документации или все, что вы хотите автоматизировать. Пользовательское свойство MSBuild позволит вам использовать обычную конфигурацию Debug/Release и extend it для автоматизации процесса сборки, просто зависит от того, что вы хотите.Любой из этих подходов можно было бы также вывести из command line.

1

Ваш .csproj-файл является файлом MSBuild. Таким образом, вы на самом деле используете его уже.

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

Если вы просто хотите отредактировать файл сборки проекта, вы можете использовать IDE для редактирования некоторых параметров, таких как действия до и после сборки, или отредактировать сам Xml, разгрузив проект и щелкнув правой кнопкой мыши и отредактировав его.

+0

Am I выходя за борт, желая отдельный файл сборки, если я не использую CI или ночные сборки? Сборка немного сложная, и все. –

+0

@ Алекс вы не собираетесь за борт вообще. самая большая стоимость - это кривая обучения, и похоже, что вы уже на этом пути, поэтому я бы сказал, что это стоит того, чтобы инвестировать в обучение с помощью отдельного файла сборки. посмотрите на расширения сборки и даже на сборку программного обеспечения, если вы можете позволить себе платить, поскольку это может вам помочь. – dove

2

MSBuild - это механизм сборки, используемый Visual Studio для обработки файлов, включенных в проект.
Сами файлы проекта Visual Studio (**. Csproj * для C# и .vbproj для VB, например) являются фактически сценариями MSBuild, которые запускаются каждый раз при создании проекта.

1

Вы можете использовать свои текущие файлы .vcproj для создания своего проекта с помощью MSBuild. Однако, поскольку MSBuild не поддерживается напрямую (по крайней мере для vC++), вместо vcbuild используется (внутренне). В VS2010 все файлы проекта основаны на MSBuild ...

0

Я предлагаю вам вызвать msbuild в качестве этапа пост-сборки. Затем вы можете поместить скрипт сборки в свое решение и вызвать его.

<windowsdir>\Microsoft.NET\Framework\v3.5\MSBuild.exe c:\temp\MyProject\mybuildfile.proj 
+0

Yuck. Цели BeforeBuild или AfterBuild - намного лучшие крючки. – si618

+0

@Si: По ссылке, данной @Mike Two, объекты BeforeBuild и AfterBuild предположительно предназначены для поддержки старых версий? http://blogs.msdn.com/msbuild/archive/2005/11/23/496396.aspx –

+0

@Gerrie: Разве это не значит, что я буду строить дважды? –

0

Самый простой способ - это, вероятно, вызвать ваш пользовательский скрипт сборки, используя шаг после сборки. Щелкните правой кнопкой мыши проект, выберите «Build Events» и вызовите msbuild с вашим пользовательским файлом msbuild.

+0

Но тогда я не строю дважды? (Один раз в VS и один раз в MSBuild?) –

5

Как уже отмечалось, MSBuild уже доступен при установке Visual Studio.

Если вы хотите интегрировать в VS2008: Running MSBuild from Visual Studio

+1

Я хотел бы щелкнуть правой кнопкой мыши файл сборки и выбрать «Сборка». Это добирается. –

1

Кроме того, не забывайте, что вы можете использовать MSBuild SideKick для разработки и отладки ваших (местных) msbuild, доступных бесплатно по адресу: http://www.attrice.info/msbuild/

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