Создание идентификаторов GUID для файлов Wix MSI в DevOps Azure - PullRequest
2 голосов
/ 26 марта 2019

Я устанавливаю установщик Wix для приложения веб-сервера и внешнего интерфейса приложения Sitecore. Мой вопрос не относится к веб-серверу или Sitecore. Мои проблемы с Wix и как использовать его с непрерывной доставкой.

1) Wix требуется GUID для каждого файла и самого продукта. Нужно ли обновлять каждый GUID в файле Wix при каждой сборке? В репозитории Git это может быть много изменений.

2) Если мне нужно обновить GUID, когда каждая ветвь (dev, staging и master) на моем CD-сервере (Azure DevOps) выполняет сборку, как мне обновить файл Wix новыми GUID в Azure DevOps?

Что нам действительно нужно, так это иметь возможность создавать, выпускать, развертывать и, возможно, выполнять откат до последней хорошей версии на каждом из 3 наших серверов (dev, staging и master). Первоначально я думал, что мы просто скопируем файлы на этапе развертывания, но вместо этого я получил мандат на создание установщика MSI, потому что он чище и может последовательно откатывать неудачные установки. Если вы считаете, что Wix - это неправильный инструмент или есть более эффективный процесс, пожалуйста, также говорите. Wix действительно кажется слишком многословным: компонент для практически каждого файла с сгенерированными GUID для каждого.

1 Ответ

0 голосов
/ 26 марта 2019

Код продукта, пакета, кода обновления : Вы можете использовать Auto-GUID WiX для компонентов (для большинства компонентов) , Using auto-GUIDs significantly reduces WiX source complexity. Это безопасно ?

Product Code и Upgrade Code, которыми вы должны управлять. Для большинства целей вы бы изменить код продукта и код пакета для каждого выпуска. Код пакета может быть установлен для автоматической генерации при сборке. На самом деле код продукта может также, если вы используете только основные обновления. Хорошая сводка от Flexera о продукте, упаковке и коде обновления.


Hello WiX : Здесь приведен пример WiX Visual Studio Hello World . Он должен показать вам основы компиляции рабочей установки с WiX и Visual Studio. Здесь также есть несколько советов по быстрому запуску WiX (много ссылок на примеры).


Auto-Magic : Вы можете использовать функцию автогида WiX, как описано здесь: Синтаксис для направляющих в WIX? . Вы просто пропускаете жестко запрограммированный GUID для компонентов, в которых WiX может автоматически управлять GUID.

Понимание GUID компонентов : Это прагматическое описание того, как GUID компонентов предназначен для работы, может помочь лучше понять их: Изменить GUID компонента в wix?

Вот и другие источники информации:

Роб Меншинг, создатель WiX :

Flexera


Azure DevOps : я не работаю с этой средой, но если вы используете GUID автокомпонентов, вам, как правило, нужно только обновить код продукта и версию продукта для каждая сборка - я наверное что-то забываю. Вы можете выбрать код пакета для автоматической генерации при сборке, поскольку предполагается, что он просто уникален для каждого файла (новый файл создается для каждой сборки, поэтому просто создайте автоматически). Многие также устанавливают код продукта для автоматической генерации, поскольку они используют только основные обновления.

На самом деле я никогда не нуждался в этом, но вы должны иметь возможность передавать значения переменным компилятора внутри источника WiX, что означает, что вы можете просто передать новую версию и код продукта (или просто версию) в candle.exe , light.exe. Также смотрите ссылку ниже (msbuild). Попробую откопать лучшую в ближайшее время.


Некоторые ссылки :

...