Вопрос

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

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

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

Это было полезно?

Решение

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

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\

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top