Нужен учебник для начинающих Msbuild

Мы поддерживаем Windows приложение среднего размера, разработанное в vb/ C# .net в работе. Тем не менее, сейчас процесс сборки и развертывания этого приложения выполняется вручную. Я полон решимости автоматизировать этот процесс с помощью MSBuild, о котором я до сих пор не знаю.

Наше приложение имеет простую структуру сборки, набор проектов, уже сгруппированных в четыре решения (.sln), и нужно просто собрать четыре sln в порядке. А затем опубликуйте проект (который является частью последнего созданного sln) в каталоге. Вот и все. Простой процесс, который уже занимает 30 минут времени ручной сборки, и я совершенно уверен, что это может быть выполнено без ручного вмешательства, используя msbuild, по крайней мере, 1/4 времени.

Все мои цели поставлены хорошо, я начал искать в Интернете ресурсы MSBuild, чтобы выполнить мой процесс, но, возможно, просматривал многие вещи, которые меня смущали. Нужен указатель или хорошее объяснение того, как начать и с чего начать для моего простого сценария. Помощь очень ценится.

2 ответа

Решение

Это звучит как очень простой сценарий для написания. Даже командный файл будет делать:

msbuild \ path \ to \ first.sln /p: конфигурация = выпуск
msbuild \path\to\second.sln /p: конфигурация = выпуск
msbuild \path\to\third.sln /p: конфигурация = релиз
msbuild \ path \ to \ четвертый.sln /p: конфигурация = релиз
вызов развертывания

Конечно, намного лучше было бы иметь работающий сервер, скажем CruiseControl.NET, который дает веб-интерфейс в статус и историю сборки.

В MS Build есть две основные контрольные точки для вызывающей стороны: цель и ее свойства. Цель - это то, что компилировать, ресурсы, компиляция, развертывание и т. Д. Свойства управляют тем, как создается эта цель.

Вы можете управлять конфигурацией, используя свойство Configuration (см. Выше). Если вы откроете файлы *.* Proj, вы заметите PropertyGroup элементы. Они устанавливаются через командную строку, используя /p Arg.

Вот спецификации для двух аргументов:

/target:<targets>  Build these targets in this project. Use a semicolon or a
                 comma to separate multiple targets, or specify each
                 target separately. (Short form: /t)
                 Example:
                   /target:Resources;Compile

/property:<n>=<v>  Set or override these project-level properties. <n> is
                 the property name, and <v> is the property value. Use a
                 semicolon or a comma to separate multiple properties, or
                 specify each property separately. (Short form: /p)
                 Example:
                   /property:WarningLevel=2;OutDir=bin\Debug\

Вот хорошее руководство, которое содержит много полезной информации о MSBuild, Continuous Integration и CuriseControl.NET. Определенно хорошее место для начала.

Другие вопросы по тегам