Обновление XML-файлов на основе параметров пользовательского интерфейса - PullRequest
0 голосов
/ 03 февраля 2012

Я только начинаю с WiX и буду очень признателен за советы.

Я создал проект WiX, который устанавливает несколько служб Windows, но мне нужно по-разному задавать имя службы, имя пользователя / пароль и файл .config xml в зависимости от среды. Среда настраивается в пользовательском интерфейсе с помощью переключателей, т. Е. ENVIRONMENT устанавливается на PROD, UAT или SYSTEST.

Теперь я не уверен, как делать изменения, связанные с окружающей средой. Должен ли я создать компонент с условием для каждой среды? Это будет означать много дублирования, может быть, есть более элегантное решение? Есть ли что-то, что мне нужно знать (я читал, что служба может не удалить, если я изменю имя?).

Спасибо!

1 Ответ

0 голосов
/ 10 февраля 2012

Поскольку ответа на этот вопрос пока нет, я подумал, что скажу, что я в итоге сделал.

Поддерживать условие для каждого компонента, повторяющегося для каждой среды, было бы кошмаром, поэтомуЯ решил поместить все свойства, связанные с окружением, в настраиваемое действие VBscript.Мне пришлось сохранить его в реестре и извлечь его во время удаления \ обновления, когда пользовательский интерфейс недоступен, но изначально он, казалось, работал довольно хорошо.

У меня возникла проблема, как только я сказал ей запускать службы при установке - он не распознал тот факт, что служба работала при запуске удаления, и обнаружил, что всплывающее окно сообщает, что файлы заблокированы.Из журнала он правильно извлек имя службы, поэтому я не мог понять, почему, но это определенно было связано с тем, что имя службы отсутствовало в таблице msi.

Все становилось немного сложным игрязный (и запутанный для новичка!), поэтому я решил попробовать другой подход, основанный на отличном посте здесь хитрости и советы WiX - Создание версий Live, Test, Training, ... с использованием одного и того жеисходные файлы.

Он работает очень хорошо и значительно упрощает обработку обновлений в разных ветвях (с одним и тем же env).

Единственный недостаток - время сборки значительно увеличилось, ноэто не проблема.Надеюсь, это кому-нибудь пригодится.

...