Я написал бесплатную утилиту, которая изменяет системные настройки. Некоторые пользователи ошибочно полагают, что они могут отменить изменения, просто удалив утилиту. Когда они пытаются удалить, я хочу показать им сообщение, сообщающее им, что они должны использовать эту утилиту, чтобы отменить изменения, и дать им возможность продолжить или отменить удаление. Как мне это сделать? Я использую InstallShield LE с Visual Studio 2010.InstallShield LE: настройка удаления
ответ
Обычный подход заключается в удалении настраиваемого действия. Он может запросить пользователя и вернуть 0 для продолжения или 1602 для отмены.
Это настраиваемое действие должно быть библиотекой win32, которая получает дескриптор установки. Пользовательское действие EXE или .NET может возвращать только 0 для успеха или любое другое значение для фатальной ошибки (без поддержки выхода пользователя).
К сожалению, InstallShield LE не поддерживает настраиваемые действия DLL (для этого требуется платная версия). Таким образом, решение заключается в использовании другого инструмента настройки, который предлагает больше контроля над пользовательскими действиями: http://en.wikipedia.org/wiki/List_of_installation_software
Другое решение - это вручную добавить пользовательское действие в MSI, отредактировав его с помощью Orca.
Как создать пользовательскую DLL, а затем добавить ее с помощью Orca: http://www.codeproject.com/KB/install/msicustomaction.aspx –
У этого есть немного больше информации о написании настраиваемой DLL работы: http://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/ –
Ссылка CodeProject рассказывает о том, как «окно сообщения может оказаться скрытым за диалоги MSI ». Это похоже на возможное решение: http://geekswithblogs.net/Bretshawn/archive/2010/02/19/how-to-force-a-windows-installer-custom-action-form-to.aspx –