Единственный правильный способ установки программного обеспечения в Windows (я предполагаю, что это ваша целевая платформа) - это использование Windows Installer .Немного упрощения Установщик Windows основан на концепции установочного пакета (файла базы данных), который транзакционным способом может быть добавлен или удален из системы.
Если вы напишите свою собственную логику установки, вы не будетевозможность участвовать в транзакционной обработке установки программного обеспечения.Если ваш деинсталлятор будет удален, пользователь не сможет удалить ваше программное обеспечение.Кроме того, установщик Windows знает много о странностях Windows, о которых вы, возможно, не знаете.
Установщик Windows предоставляет несколько загадочный API для создания пакетов, но вы также можете использовать затем открытый исходный код Набор инструментов WiX , который является довольно мощным или любым коммерческим установщиком, таким как InstallShield .
Если вы решили пойти по пути установщика Windows, вам следует по возможности избегать пользовательских действий.Пользовательские действия имеют ту же проблему «отката транзакции», что и пользовательский установщик.Вы создаете код для отката / удаления настраиваемого действия, скажем, в DLL, и если эта DLL потеряна, установщик Windows не сможет отменить ваше настраиваемое действие.
Установщик Windows на самом деле достаточно мощный.Вы не предоставили никакой конкретной информации о «пользовательских вещах», которые вам нужно сделать, но, возможно, у установщика Windows уже есть таблица для этого?