Это не может быть сделано с помощью одного пользовательского действия.У вас должно быть 2 отдельных пользовательских действия:
- одно, которое выполняется при нажатии кнопки и считывает информацию из реестра
- , другое, которое записывает информацию в реестр во время установки
Второе действие требует прав администратора и должно выполняться как отложенное, без олицетворения в InstallExecuteSequence.
Если вы хотите установить свойства установщика на основе того, что читается из реестра, использование класса установщика на самом деле не вариант,Я рекомендую использовать пользовательское действие DLL, которое получает дескриптор сеанса установщика.Вы можете найти учебник здесь: http://www.codeproject.com/KB/install/msicustomaction.aspx