2016-10-27 3 views
0

У меня есть установщик wix с пятью функциями. Моя текущая версия 0.0.0.125. Я устанавливаю это на одной машине с первыми тремя функциями. Позже я хочу установить оставшиеся две функции и поэтому отменить выбор первых трех и выбрать оставшиеся две функции. Итак, на этот раз первые три уже установленных не должны быть удалены, а остальные две функции должны быть установлены. Но когда я устанавливаю одну и ту же сборку во второй раз, три функции автоматически удаляются из места назначения, а только для выбранных двух функций.Wix Установите ту же версию

Я использовал дочерний атрибут RemoveFile для каждого компонента для перезаписывания, и когда я вручную скопировал файл и вставил его в каталог назначения, в следующий раз, когда я установлю тот же установщик версии, он не будет отменен и отменен (ранее установленные функции) также удалены. Поэтому я ограничил это, добавив 1 в InstallExecuteSequence.

я) Мне нужно перезаписать все файлы б) Каждая установка одного и того же инсталлятор не следует удалить ранее установленные файлы

Благодаря

ответ

0

Обычно вы должны установить Permanent="yes" для файлов, которые вы хотите сохранить на компьютере после установки и «нет», если хотите удалить или перезаписать их.

Например:

 <util:XmlFile Id="fileId" 
       Action="setValue" 
       Permanent="yes" 
       File='[INSTALLFOLDER]pathtofile\yourApp.exe' 
       ElementPath="" 
       Value="" 
       Sequence="1"/> 

Надеется, что это помогает!

1

Я не могу точно сказать, что вы имеете в виду особенности и установки те же установки, дважды, но:

Вы не можете установить одинаковые настройки MSI дважды. Он уже установлен (ProductCode), поэтому он переходит в режим обслуживания/ремонта. Это может сделать ремонт/переустановку или, если вы создали его для обслуживания функций, тогда Windows снова заметит, что продукт уже установлен, но предлагает стандартное диалоговое окно функций, которое позволяет добавлять функции из настройки, и этот последний режим именно то, что вы получите, если поедете в программы & Особенности и выберите изменение. Другими словами, настоящая настройка обслуживания функций предлагает диалог выбора функций, в основном из «Программы» &. В вашем сценарии с добавлением двух функций вы просто используете «Изменить из программ» &. Не пытайтесь переустановить ту же настройку.

Ваше сообщение относится к компонентам и RemoveFile, и вам определенно не нужно ничего делать. Если вы не используете истинные функции установщика Windows и создали компонентную настройку, где установка компонента основана на условиях, это объясняет, что вы видите. Значения свойств, используемые для ваших условий, не сохраняются, поэтому, когда вы пытаетесь установить ту же самую установку снова, она переходит в режим переустановки обслуживания для текущего установленного продукта, значения свойств пустые, условия ложные, поэтому эти компоненты удаляются.

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

Если ваша цель - заменить файлы, которые нуждаются в обновлении, то вы должны посмотреть на элемент WiX MajorUpgrade. Если вы установите MigrateFeatures на yes, тогда обновление приведет к тому, что после обновления будут установлены те же функции. Расписание afterInstallExecute - это, вероятно, то, что вы хотите.Увеличивайте файлы версий файлов, которые хотите обновить, используйте новый ProductCode, увеличивайте ProductVersion в первых трех полях и используйте тот же UpgradeCode. В качестве альтернативы вы можете посмотреть создание патча, файла msp.

+0

Я не хочу идти в режим обслуживания после установки продукта. Вместо этого он всегда должен устанавливаться как первая установка. Как вы сказали, я использую «SelectionTree» для группировки компонентов. <Идентификатор функции = «ProductFeature» Title = «Whole Prodcut» Level = «1»>

+0

Невозможно сделать - вы не знаете, как работает установщик Windows. ProductCode был установлен и повторная установка той же настройки ProductCode не будет установлена, как если бы она была установлена ​​в первый раз. Возможно, вам стоит взглянуть на элемент MajorUpgrade и мигрировать состояния функций. – PhilDW

+0

Вы верны PhilDW. Мы хотим добиться этого. в ProdcutCode. Я планирую удалить ProductCode из реестра во время AppSearch, если установлен alre ady, выполнив поиск ProductName. Таким образом, он всегда будет похож на первую установку. Я удалил диалог manintenance и добавил CDATA (НЕ установленный или установленный или PATCH), чтобы показать все мои диалоговые окна. Таким образом, в первой/второй/третьей установке одной и той же версии сборки отображаются те же диалоговые окна, а также выполняются все определенные пользовательские действия. –

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