2009-05-31 2 views
5

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

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

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

ответ

5

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

msbuild \path\to\first.sln /p:Configuration=Release 
msbuild \path\to\second.sln /p:Configuration=Release 
msbuild \path\to\third.sln /p:Configuration=Release 
msbuild \path\to\fourth.sln /p:Configuration=Release 
call deploy

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

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

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

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

/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\ 
+0

Спасибо за ваш ответ. Но как установить параметры конфигурации и все? Например, например, я отлаживаю прокси-приложения для приложений в режиме DEbug, но сценарий всегда должен строиться в режиме Release. Еще раз спасибо за ваш быстрый ответ. – blntechie

+0

Я добавил детали. Все это довольно просто и хорошо стоит освоить. MS Build может автоматизировать ** много **. –

1

Here's a good guide, что есть много полезной информации о MSBuild, непрерывной интеграции и CuriseControl.NET. Определенно хорошее место для начала.

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