2008-10-17 4 views
4

Я хочу проверить, установлено ли приложение с использованием условий запуска. Если да, я хочу выйти из программы установки, если установка не должна продолжаться. Может ли кто-нибудь сказать, как добиться этого в C# installer ?.Проверьте, установлено ли приложение

С уважением, Суровые Суман

ответ

4

Поместите запись в реестре по установке. Если, когда программа установки работает, запись там, то программа уже установлена ​​(или ваш пользователь взломал реестр, чтобы заставить установщика подумать, что это было). Если это не так, вы еще не установили его.

8

Я не уверен, как это сделать с C#, но при использовании Nullsoft Installer это подход, который я видел: перед установкой проверьте раздел реестра, который создается во время установки.

Деинсталляторы отображаются в панели управления «Установка и удаление программ». Список деинсталляторов хранится в HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall. Если программа установки регистрирует деинсталлятор, ключ деинсталлятор является хорошим ключом для установки, чтобы проверить, потому что:

  1. Предполагая, что программа устанавливается для всех пользователей, ключ проверяется на должны находиться под HKEY Local Machine (HKLM) не является ключевым для текущего пользователя (HKey Current User). Ключ деинсталлятора находится под HKLM

  2. Иногда несколько версий одной и той же программы должны устанавливаться бок о бок. Клавиши удаления должны быть конкретными для каждой версии, поэтому правила могут быть добавлены для проверки номера версии установщика на установленные версии.

Существует ограничение с проверки ключей реестра, чтобы сказать, если установлена ​​программа: если программа удалена из Program Files вручную (без использования деинсталлятора), повторная установка не будет выполнена. Чтобы избежать этой проблемы, после обнаружения ключа реестра деинсталлятора установщик может проверить, что программа удаления не существует. Если это так, вероятно, безопасно предположить, что программа все еще установлена.

Во время игры с установщиками и условной установкой стоит иметь в виду, что иногда переустановка полезна для устранения проблем. Это может быть утомительным, чтобы быть вынужденным пройти через (хлопотную) деинсталляцию, чтобы иметь возможность переустановить.

См. NSIS's page on Add/Remove Programs для получения дополнительных сведений о удалении ключей реестра.

0

Если вы не хотите вносить что-либо в реестр (из-за прав администратора или чего-то подобного), вы можете просто проверить, имеются ли папки или файлы, которые вы устанавливаете. Да, это предполагает, что вы устанавливаете в ту же папку каждый раз, но это вариант.

Смежные вопросы