2012-02-03 2 views
0

Я только начинаю с WiX, и я очень благодарен за советы.Обновление xml-файлов на основе опций пользовательского интерфейса

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

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

Спасибо!

ответ

0

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

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

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

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

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

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