Позвольте мне объяснить мой сценарий, потому что он сложный! Из Visual Studio 2019 я создаю установщик MSI, который устанавливает приложение Windows Forms для пользователя P C. Для этого установщика определено только одно настраиваемое действие, которое запускается на этапе удаления из панели управления (это настраиваемое действие выполняет команду для удаления службы Windows). Этот установщик MSI работает без проблем. Я могу установить приложение, оно работает нормально, и когда я удаляю его, выполняется пользовательское действие, и моя Windows служба удаляется из операционной системы. Хорошо!
Теперь мне нужно установить несколько экземпляров этого приложения, поэтому я использую Windows Installer SDK, чтобы создать много (четыре на данный момент) файлов MSI. Предположим, что мой базовый установщик называется App.msi; используя пакетный файл, создайте App_01.msi, App_02.msi, App_03.msi и App_04.msi. Каждый установщик затем изменяется с помощью этого сценария:
cscript wirun sql .vbs App_01.msi "UPDATE Свойство SET Значение = '{BB0E2A06-A974-4416-A2B3-EE883A9BAE2D}' WHERE Свойство = 'ProductCode' "cscript wirun sql .vbs App_01.msi" Свойство UPDATE SET Value = 'App 1' WHERE Property = 'ProductName' "cscript wirun sql .vbs App_01.msi" Ярлык UPDATE SET Name = 'App 1' "cscript WiSumInf.vbs App_01.msi 9 = {8D6AE98 C -0C35-4283-87B9-E20263A3F9C5} cscript WiSumInf.vbs App_01.msi 2 = "Приложение 1"
Приведенный выше код является лишь фрагментом моего фактический пакетный файл, и он изменяет только App_01.msi. Теперь я могу успешно запустить четыре установщика и установить четыре экземпляра приложения Windows Forms, очевидно, в четырех разных папках.
Наконец, проблема: настраиваемое действие «Удалить» запускается только при удалении последней экземпляры моего приложения, независимо от порядка установки. Моя проблема также описана в этом посте: https://social.msdn.microsoft.com/Forums/windows/en-US/d48d44a4-3deb-4753-94f8-a94503510a06/uninstall-event-not-working-for-multiple-instance-in-windows-installer?forum=winformssetup. Но я не могу найти решение; может я ошибаюсь при создании нескольких MSI?
В чем причина? Кто-нибудь может мне помочь?
Спасибо большое !!!!!