Можно ли вызвать класс установщика по нажатию кнопки в C #, а не в настройке Custom Action? - PullRequest
0 голосов
/ 04 февраля 2011

Если у пользователя нет прав администратора.Как я могу вызвать класс установщика для события нажатия кнопки, которое читает из реестра, а также записать значение в реестр в c #?

Поскольку я получаю сообщение об ошибке, когда пользователь переходит к регистрации, он записывает значение вреестр и пользователи не имеют прав на запись в реестр.Так что я знаю, что только класс установщика имеет право сделать это.Так как я могу сделать эту работу?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2011

Нет единственно возможной причины хотеть сделать это.Пользовательские действия класса установщика не имеют доступа к дескриптору MSI.Это означает, что они не могут получить / установить свойства.Единственное, что можно использовать, - это изменить конфигурацию машины, и это противоречит всем рекомендациям установщика Windows, чтобы сделать это из последовательности пользовательского интерфейса.

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

Я предлагаю изучить WiX DTF.Это предоставляет больше функциональных возможностей, чем настраиваемые действия класса установщика, и позволяет создавать решения, соответствующие передовым методам.

0 голосов
/ 04 февраля 2011

Рекомендуется использовать два различных пользовательских действия:

  • одно в пользовательском интерфейсе установки, который считывает данные (значение вашего реестра)
  • другое в InstallExecuteSequence (во время установки)который записывает данные

Таким образом, у вас не должно быть проблем с разрешениями.

...