Я искал эту тему и нашел много сообщений, но ни один из них не описывает точную проблему, с которой я столкнулся. В нашем продукте (который я унаследовал от другого разработчика) был метод InstallScript (см. ниже), который, хотя и работал некоторое время, казалось, не вызывался ниоткуда, поэтому я добавил пользовательское действие для его вызова и поместил его после шага ISSetupFilesExtract как в пользовательском интерфейсе, так и в последовательности выполнения, и когда я запускаю его, он либо не работает, либо выдает ошибку. Итак, вот сценарий:
export prototype MainApplication_Installing();
function MainApplication_Installing()
begin
Disable(CANCELBUTTON);
SetStatusWindow(-1,"Uninstalling previous versions...");
//Uninstall 3.0.5
LaunchApp("MsiExec.exe","/X{ABA98465-AE8B-49BB-A445-46744EF236C0} /qn");
//Uninstall 3.1.1
LaunchApp("MsiExec.exe","/X{954ADD40-DFEF-40DD-896A-FF29E5E43FB8} /qn");
где /X — это код продукта каждой предыдущей версии, но, как я уже сказал, это не сработало, поэтому после неудачной попытки отладки сценария я попробовал другой маршрут, создав основное обновление, где я указал код обновления каждой предыдущей версии. версия в разделе: Подготовить установку к сценариям обновления-> Обновить установку установщика Windows-> Удалить 3.05–3.1.1, но это тоже не работает. Когда я устанавливаю продукт сейчас, он устанавливает его параллельно со старой версией (я вижу обе в Панели управления-> Удалить или изменить программу.
Итак, как мне это сделать и почему ни один из них не работает?
Заранее спасибо!