Итак, у меня есть служба Windows, которая может иметь несколько экземпляров, установленных на одном сервере. Установщик должен иметь возможность обновить один экземпляр. Установщик использует Instance Transforms, но я не уверен, как получить основные обновления, которые я бы хотел.WiX - Выполнение основного обновления при установке нескольких экземпляров
Для серьезной модернизации на работу, я понимаю, что я должен иметь изменение кода продукта, поэтому экземпляры определяются в таком виде:
<Instance ProductCode="*"
UpgradeCode="{SOMEGUID}"
ProductName="Instance 1"
Id="Instance1"/>
Маврикийской может быть запущен, чтобы установить новый экземпляр по:
msiexec.exe /i "installer.msi" TRANSFORMS=:Instance1 MSINEWINSTANCE=1
Однако, после долгих поисков, единственный способ я нашел, чтобы запустить обновление на конкретном экземпляре этот формат:
msiexec.exe /i "installer.msi" /n {PRODUCTCODE} REINSTALL=ALL REINSTALLMODE=vamus
Проблема в том, что код продукта автогенерируется для основных обновлений, тогда я не знаю, что это такое, поэтому я не могу перейти к аргументам команды.
Есть ли способ запустить обновление с использованием экземпляра экземпляра Instance или InstanceID или ProductCode? Так как оба они останутся статичными. В качестве альтернативы, могу ли я запустить msi без аргументов, выбрать существующий экземпляр (через проверку реестра) в диалоговом окне пользовательского интерфейса и установить соответствующие свойства, чтобы заставить msi перейти в режим обновления для этого экземпляра?
Это может показаться вам полезным: http://sklyarenko.net/blog/2011/09/14/revisited-multiple-instance/ –
Мне кажется, что как только каждый экземпляр установлен, это продукт с кодом продукта ,Если вы выполняете обновление, то вашему новому продукту просто нужно сделать скучное крупное обновление и заполнить его таблицу обновлений материалом, который заменит любой предыдущий продукт, который он должен заменить. Не то, чтобы я много знал о примерах, но вы пробовали использовать обычный подход к использованию таблиц обновления, которые заставляют ваш новый экземпляр обновлять каждый из ваших старых экземпляров. Вы говорите, что не можете обновлять каждый продукт отдельно, потому что все они имеют один и тот же файл обновления? Такая же версия? – PhilDW
Чтобы сообщить вам, что вы можете получить ** полный список ** ** кодов продуктов **, ** коды обновления ** и ** названия продуктов ** на данной машине через PowerShell: [** Как можно Я нашел код обновления для установленного файла MSI? ** (https://stackoverflow.com/questions/46637094/how-can-i-find-the-upgrade-code-for-an-installed-msi-file/46637095 # 46637095). –