InstallShield 2010 не удаляет функцию - PullRequest
0 голосов
/ 18 января 2012

У меня проблема с MSI, созданным с помощью InstallShield 2010, который удаляется правильно. Мой проект InstallShield содержит 5 различных функций, все из которых установлены правильно, согласно журналам.

Журнал установки

Action start 14:17:21: InstallValidate.
MSI (s) (60:48) [14:17:21:819]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '87c91cda6f92ea4989c01c65f841e520'.
MSI (s) (60:48) [14:17:21:819]: Feature: F1; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F2; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F3; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F4; Installed: Absent;   Request: Local;   Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F5; Installed: Absent;   Request: Local;   Action: Local

...

=== Logging stopped: 1/17/2012  14:21:37 ===
MSI (c) (14:1C) [14:21:37:566]: Note: 1: 1707 
MSI (c) (14:1C) [14:21:37:566]: Product: Foo -- Installation operation completed successfully.

MSI (c) (14:1C) [14:21:37:566]: Windows Installer installed the product. Product Name: Foo. Product Version: . Product Language: 1033. Installation success or error status: 0.

Однако, когда я пытаюсь удалить с помощью того же MSI, одна из функций обнаруживается как неустановленная и впоследствии не удаляется.

Журнал удаления

MSI (s) (38:04) [14:31:09:730]: Doing action: InstallValidate
Action ended 14:31:09: SetODBCFolders. Return value 0.
MSI (s) (38:04) [14:31:09:730]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '63009fbd7945fe4d8897ff58c1aa8e21'.
MSI (s) (38:04) [14:31:09:730]: Feature: F1; Installed: Absent;   Request: Null;   Action: Null
MSI (s) (38:04) [14:31:09:730]: Feature: F2; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F3; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F4; Installed: Local;   Request: Absent;   Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F5; Installed: Local;   Request: Absent;   Action: Absent

При установке последней версии MSI после удаления журнал выглядит как журнал установки выше. Даже если MSI не видит функцию F1 установленной и переустанавливает ее, все файлы, уже находящиеся в системе из-за неудачной деинсталляции, не перезаписываются новыми файлами.

Любая помощь будет принята с благодарностью. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 18 января 2012

Скорее всего, вы должны увидеть следующее предупреждение о сборке:

Val0005: условие для функции 'XXXXXXX' может возможно установить нулевой уровень InstallLevel для этой функции во время выполнения. Если эта функция включается при установке, вы должны создать аналогичную логику, чтобы убедиться, что она также включена в режиме обслуживания, иначе при обновлении эта функция будет игнорироваться.

Обычно, если эта функция установлена, вы должны убедиться, что вы не установили ее на 0 во время обслуживания. Если это произойдет, оно будет проигнорировано, как вы видите.

0 голосов
/ 20 марта 2015

У меня была похожая проблема.
Вещи для проверки:

Компонент Installshield, отключение общего доступа для предотвращения подсчета ссылок
Общий компонент: нет

Проверьте реестр для подсчета ссылок. Поиск в этом списке, чтобы найти файл: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ SharedDLLs
Если вы разработали более раннюю программу установки с ошибками, количество неверных ссылок может остаться. Вы можете убедиться в этом, установив в новую уникальную папку и посмотреть, сохраняется ли проблема.

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

Включите подробное ведение журнала для расследования:
https://support.microsoft.com/en-us/kb/2545723
Имя файла журнала MSI * .LOG заканчивается, например, на. C: \ Users \ Имя \ AppData \ Local \ Temp
Найдите файлы, которые не удаляются, и сравните с другими.
В моем случае Action: Null для плохих, Action: Absent для остальных.

...