Как сделать серьезное обновление условно в installshield

Вот мой сценарий:

Мне нужна возможность сосуществования разных версий одного и того же продукта на моей машине. Итак, мне нужен другой ключ продукта. Круто, без проблем. Дело в том, что я также хочу иметь возможность делать серьезное обновление ТОЛЬКО в том случае, если пользователь пытается установить его в то же место, где уже установлен мой продукт.

Таким образом, в основном мне нужно иметь возможность запускать режим «основного обновления» ПОСЛЕ того, как пользователь выбирает место, в которое он хочет установить.

Как я могу это сделать?


person Phillip Schmidt    schedule 17.09.2012    source источник


Ответы (1)


Я знаю способ сделать то, что вы описываете, но я не уверен, что это то, что вы хотите.

То, что вам, вероятно, нужно, - это несколько установщиков экземпляров. Взгляните на следующую статью, чтобы узнать, описывает ли она опыт, который вы ищете:

InstallShield 2009, бета-версия, часть I (несколько экземпляров)

person Christopher Painter    schedule 17.09.2012
comment
Мы уже используем это, но мы хотим запрашивать удаление, когда пользователь уже выбрал новый экземпляр. Я знаю, тупой да? Но я на самом деле (думаю), я понял, как это сделать. Я написал некоторый управляемый код, чтобы получить идентификатор продукта из его местоположения в файле, и я просто буду использовать UninstallApplication(), чтобы удалить его без вывода сообщений. - person Phillip Schmidt; 18.09.2012
comment
Посмотрите на временные таблицы. Вы можете использовать настраиваемые действия для динамического добавления строк в таблицу Upgrade, чтобы FindRelatedProducts / RemoveExistingProducts выполняли за вас тяжелую работу и по-прежнему поддерживали откаты. - person Christopher Painter; 18.09.2012
comment
Ницца. Это то, что я искал. Я все равно приму ваш ответ прямо сейчас, но добавлю к нему ваш последний комментарий, потому что в конечном итоге это будет путь, по которому я иду. - person Phillip Schmidt; 18.09.2012
comment
Сначала я не хотел давать такой сложный дизайн в качестве ответа. Как правило, если сработает более простой и часто используемый подход, я использую его. У меня есть клиент, который делает некоторые действительно странные вещи в этом направлении, когда я переустанавливаю машину, создаю списки, а затем на основе бизнес-правил динамически использую основное обновление или нет. Действительно странная вещь, и она хорошо работает для того, что они хотят, но лично я думаю, что она слишком продумана. Но эй, покупатель всегда прав ‹/сарказм› - person Christopher Painter; 18.09.2012
comment
Лол, да, я сейчас в той же лодке. За исключением того, что вы можете добавить, что до середины прошлой недели я никогда не прикасался к installshield. В любом случае спасибо за помощь! - person Phillip Schmidt; 18.09.2012
comment
Ух ты. Удачи. Мне потребовалось много лет, чтобы сделать все это без дефектов. - person Christopher Painter; 18.09.2012
comment
Ну, я никогда не говорил, что у него нет дефектов :P - person Phillip Schmidt; 19.09.2012
comment
Я хочу сказать, что MSI ведет себя очень хорошо, если только вы не остаетесь между строк. За неделю в нем невозможно понять, где линии. Поэтому попытки делать такие вещи очень рискованны. Нет твоей вины... - person Christopher Painter; 19.09.2012
comment
Да, верно. Хотите попробовать этот? - person Phillip Schmidt; 19.09.2012