2010-12-14 4 views
0

Я создал установщик WiX для развертывания набора веб-сайтов на сайте клиента и использования xml-файла для подключения правильных значений для имен хостов и connectionStrings в нашем web.config файлы. Так как эти значения получены от монтажника UI Я столкнулся с проблемой при выполнении апгрейда установки с помощью:Настройки Web.config, потерянные с помощью установщика Wix для выполнения обновления

msiexec /i Websites.msi /l*vx Website.log REINSTALL=ALL REINSTALLMODE=vomus 

В то время как обновление выполняет правильно действия XMLFILE заткнуть пустые значения в так UI не запускается.

Есть ли способ получить эти значения в установщике без синтаксического разбора XML или повторного запроса инженера по установке значений?

Приветствие, Damien

ответ

2

Вам нужен шаблон Remember Property, предназначенный для XML вместо Regisry. WiX не имеет шаблона XML peek, но вам придется писать настраиваемое действие.

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

+0

Это может не сработать с IIS/ASP.NET (ничего нового там печально), но если вы разделите XML на 2 XML, установка будет намного проще. В основном один файл, который пользователь не модифицирует, который установщик может безопасно заменять снова и снова, и другой файл XML, который модифицирует пользователь/приложение/установщик, имеет свои вариационные точки в нем. В основном думаю stock.xml и override/transform.xml. –

+0

Это в основном то, что я сделал. Я надеялся, что никогда не придется писать специальные действия, но не мог обойти это. Я собрал (довольно грязную) C# dll, чтобы читать значения, которые мне нужны из любых текущих файлов web.config и web.constants.config, и хранить их как существующие переменные WiX. Не идеально, и я должен следить за тем, что делает команда разработчиков, но этого достаточно, чтобы продолжать. –

0

Если вы хотите, чтобы ваше web.config быть изменено во время установки только, вы можете состояние ваших компонентов, содержащие XMLFILE элементы с Not Installed состоянием. В этом случае действие для изменения файла XML не будет выполняться для этих компонентов во время обновления.

+0

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

Смежные вопросы