WIX InstallUtil / InstallUtilLib и развертывание файла конфигурации, почему InstallUtil плох? - PullRequest
2 голосов
/ 21 ноября 2011

Я часто нахожу цитату «InstallUtil.exe» уродливым шаблоном или «Не использовать InstallUtil.exe», и мне следует использовать собственные шаблоны пакетов WIX или Installation, и я до сих пор не понимаю, почему.

Я отошел от использования InstallUtil для установки службы .NET, когда наконец-то узнал, что написание разделов реестра для такого действия должно быть невозможным для установки действием, и я согласился с этим какправильно.

Поскольку я работал через установщик WIX для относительно сложного продукта, я обнаружил, что мне нужно создать или обновить базы данных SQL Server, создать или обновить приложения IIS и, наконец, обновить или создать файлы конфигурации.,

Каждый из моих компонентов (функций) является необязательным, но все они используют один и тот же файл конфигурации.Поскольку мой продукт использует Unity, важно отметить, что эта библиотека содержит сильную поддержку для чтения / обновления / удаления компонентов из блока Unity Configuration, поэтому мне кажется довольно умным, что я должен использовать преимущества этих блоков с помощью компонентов установки (т.е. InstallUtil) для создания или обновления моего файла конфигурации во время установки.

Просто чтобы прояснить ситуацию, мой установщик не содержит файл конфигурации для моего приложения: во время установки установщик не имеет представления о формекак основанный на выбранных функциях.Конечно, я должен встраивать эти знания в каждый из модулей, которые должны быть развернуты, а не в компетенцию установщика, который теперь является полностью независимым проектом?Не нарушит ли это принципы ОО, даже если мы говорим об установке?

Я бы очень признателен за некоторые рекомендации относительно того, является ли это хорошей практикой или нет?Я читаю «InstallUtil» - это плохо для установки services , или использование «InstallUtil» - это bad full-stop ?Если да, каковы мои варианты для умного обновления файлов конфигурации?

1 Ответ

1 голос
/ 21 ноября 2011

Основная причина, по которой следует избегать InstallUtil, заключается в том, что он запускается вне транзакции установки, поэтому установщик Windows не может отслеживать, что он сделал.

Я несколько раз использовал InstallUtil, когда просто не мог заставить Wix делать то, что мне было нужно, и у меня не было времени написать собственное действие.В этом случае я назвал версию InstallUtilLib, так как считаю, что это более чистый подход.

Я использовал этот блог в качестве руководства, как добиться этого.

...