MSI: Как побороть 2 одинаковых shortcut-а
От: Vitko Украина  
Дата: 16.07.08 08:00
Оценка:
Всем привет,

Такой сценарий:
1. Делаем простейшую MSI инсталяху в VS2005, скажем версии 1.0.0, которая добавляет на десктоп shortcut нашего приложения, детектит старые версии и удаляет их (DetectNewer = TRUE, RemovePrevious = TRUE);
2. Инсталим ее с опцией "только для себя";
3. Создаем следующую версию, скажем 1.0.1 — кроме версии ничего больше не меняем;
4. Инсталим ее с опцией "для всех";
5. Как результат — видим 2 одинаковых shortcut-а на десктопе и неудаленную версию 1.0.0;

Что я делаю не так?

С уважением.
Re: MSI: Как побороть 2 одинаковых shortcut-а
От: algol Россия about:blank
Дата: 16.07.08 10:36
Оценка: 1 (1)
Здравствуйте, Vitko, Вы писали:

V>Что я делаю не так?


А что вам здесь не нравится?
RemovePrevious работает только в случае major upgrade, т.е. когда изменен не только номер версии, но и product code. Если выбрать в студии свойство RemovePrevious и нажать F1, то можно прочитать:

The installer checks UpgradeCode and ProductCode properties to determine whether the earlier version should be removed. The UpgradeCode must be the same for both versions; the ProductCode must be different.

Re[2]: MSI: Как побороть 2 одинаковых shortcut-а
От: Vitko Украина  
Дата: 16.07.08 12:17
Оценка:
Здравствуйте, algol, Вы писали:

A>А что вам здесь не нравится?

A>RemovePrevious работает только в случае major upgrade, т.е. когда изменен не только номер версии, но и product code. Если выбрать в студии свойство RemovePrevious и нажать F1, то можно прочитать:

A>

A>The installer checks UpgradeCode and ProductCode properties to determine whether the earlier version should be removed. The UpgradeCode must be the same for both versions; the ProductCode must be different.


Сорри, что не упомянул явно — конечно же при изменении версии меняется и ProductCode (как студия и предлагает). Проблема именно в типа установки — Для всех или Только для меня. Почему-то инсталятор отказывается делать апгрейд именно для случая, когда тип установки отличается.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.