Сборка пакета MSI из Powershell - PullRequest
1 голос
/ 19 марта 2019

Мы настраиваем новый конвейер 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).

1 Ответ

2 голосов
/ 20 марта 2019

Windows Installer XML (WiX Toolset) - это язык / компилятор, который создает MSI. Он имеет поддержку интеграции MSBuild / Visual Studio. Он может быть легко встроен в конвейер Azure DevOps и не требует для этого Cake или Powershell.

У меня есть проект с открытым исходным кодом, называемый Industrial Strength Windows Installer XML (IsWiX), который построен на основе WiX и предоставляет шаблоны проектов и графические дизайнеры для помощи в большинстве разработок WiX. Пройдя мимо того, что предоставляет IsWiX, вы по-прежнему можете напрямую создавать WiX для удовлетворения своих потребностей. У меня есть несколько уроков по адресу:

https://github.com/iswix-llc/iswix-tutorials

Шаблоны проектов IsWiX имеют встроенные версии и основные шаблоны обновления, которые автоматически интегрируются с DevOps Azure. Это все объясняется в учебнике.

Вы взяли на себя довольно большую задачу. Для желающих доступны консалтинговые услуги.

...