Мы настраиваем новый конвейер Azure DevOps для развертывания нашего (ужасного) устаревшего программного обеспечения на нашем частном сервере. Наша цель - использовать модифицированный процесс Git Flow для создания и развертывания нашего программного обеспечения для серверов Dev, Stage, а затем для серверов Production (или Release). Мы используем сценарии Cake и сценарии Powershell для создания различных частей нашего программного обеспечения.
Одним из требований моего менеджера программного обеспечения является сборка пакетов MSI для нашего программного обеспечения (по крайней мере, для производственных сборок при выпуске новой версии). Из этого вытекают две проблемы:
1) Бэкэнд-программное обеспечение состоит из нескольких проектов со всевозможными странными зависимостями друг от друга (и для внешнего проекта SSIS, который мы должны рассматривать как «черный ящик» вне нашего проекта, который я не могу контролировать over) и 1 исполняемый файл, который использует большинство, но не все библиотеки DLL из сборки других проектов.
Интерфейсное программное обеспечение - это проект Sitecore, представляющий собой просто набор DLL-файлов и файлов, которые необходимо скопировать из одного места в другое с перезапуском IIS для обновления серверов.
Внутренний и внешний интерфейсы, скорее всего, будут иметь отдельные проекты установки. Но в каждом проекте установки я просто добавляю все выходные данные встроенных проектов в папку приложений и надеюсь на лучшее, что они все помещают в правильные папки вывода при установке MSI?
2) Как создать экземпляр сборки проекта установки (проекта, который создает установщик) из Cake Build и / или Powershell? Я хочу убедиться, что это работает только для сборок Release, которые мы собираем из основной ветки. Есть ли инструмент Azure, о котором мне нужно знать.
Пожалуйста, поймите, поскольку это моя первая полная реализация DevOps, я не собирал установочный пакет .NET уже 10 лет со школы, и мои навыки Powershell отстойные (пришли из мира веб-разработки / Linux).