2011-12-24 2 views
1

Я написал бесплатную утилиту, которая изменяет системные настройки. Некоторые пользователи ошибочно полагают, что они могут отменить изменения, просто удалив утилиту. Когда они пытаются удалить, я хочу показать им сообщение, сообщающее им, что они должны использовать эту утилиту, чтобы отменить изменения, и дать им возможность продолжить или отменить удаление. Как мне это сделать? Я использую InstallShield LE с Visual Studio 2010.InstallShield LE: настройка удаления

ответ

1

Обычный подход заключается в удалении настраиваемого действия. Он может запросить пользователя и вернуть 0 для продолжения или 1602 для отмены.

Это настраиваемое действие должно быть библиотекой win32, которая получает дескриптор установки. Пользовательское действие EXE или .NET может возвращать только 0 для успеха или любое другое значение для фатальной ошибки (без поддержки выхода пользователя).

К сожалению, InstallShield LE не поддерживает настраиваемые действия DLL (для этого требуется платная версия). Таким образом, решение заключается в использовании другого инструмента настройки, который предлагает больше контроля над пользовательскими действиями: http://en.wikipedia.org/wiki/List_of_installation_software

Другое решение - это вручную добавить пользовательское действие в MSI, отредактировав его с помощью Orca.

+0

Как создать пользовательскую DLL, а затем добавить ее с помощью Orca: http://www.codeproject.com/KB/install/msicustomaction.aspx –

+0

У этого есть немного больше информации о написании настраиваемой DLL работы: http://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/ –

+0

Ссылка CodeProject рассказывает о том, как «окно сообщения может оказаться скрытым за диалоги MSI ». Это похоже на возможное решение: http://geekswithblogs.net/Bretshawn/archive/2010/02/19/how-to-force-a-windows-installer-custom-action-form-to.aspx –