Нужен букварь для новичка в Msbuild [закрыт]
-
06-09-2019 - |
Вопрос
Мы поддерживаем в работе 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.Определенно, это хорошее место для начала.