2012-02-09 6 views
0

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

Мои ожидания:
Я знаю, что ремонт будет только отремонтировать те файлы, которые уже были установлены на первой установке. Но разве нет обходного пути?

Любые здесь и еще с AddLocal ???

Спасибо за кучу заранее.

ответ

0

Ваш вопрос сбивает с толку.

у вас есть приложение, содержащее 2 программы. Когда мы запускаем установщик, он устанавливает только программу 1 и не устанавливает программу 2, потому что preerexus is is is notalled.

Теперь, когда вы установите необходимое условие, хотите, чтобы программа 2, которая не была установлена, должна быть установлена ​​при повторном запуске установщика.

Об установке. есть 3 варианта. добавить функцию удаления, восстановить и удалить. Вы можете добавить функцию удаления и выбрать программу 2 и установить ее.

Вам необходимо установить условия для установки, если в случае, если pre-req не установлен, программа 2 не может быть установлена. Поэтому, когда вы пытаетесь установить в первый раз и u выбираете программу 2 или полную установку, она сообщит вам, что вы не можете установить это, поскольку pre-req не существует. Он установит только программу 1. и снова запустив настройку, появится опция удаления функции удаления.

Надеюсь, вы получили ответ.

1

Вы можете использовать условие внутри тега компонента. Пример:

<Component Id="RepairOrReinstallOnly" Guid="YourGUID" Transitive="yes"> 
    <Condition> 
     INSTALLED AND (NOT UPGRADINGPRODUCTCODE) 
    </Condition> 
    ... 
</Component> 

Таким образом, компонент должен устанавливаться только на ремонт, модификации и переустановки.

Но он не будет установлен при первой установке (INSTALLED is false) или если вы выполняете крупное обновление (UPGRADINGPRODUCTCODE - это правда).

0

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

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