Обнаружьте тихую установку в Пользовательском действии.NET

Как Вы обнаруживаете, что установка работает в "тихом" режиме?

У меня есть пользовательское приложение, что я добавил проект установки .msi. Я выполняю .msi файл с переключателем/qb, и в моем пользовательском установщике c# код, я хотел бы смочь обнаружить это.

Править: nobugs говорит для тестирования свойства UILevel. Как я получаю доступ к свойству UILevel от класса, полученного из Системы. Конфигурация. Установка. Класс установщика?

5
задан aaaa bbbb 5 March 2010 в 20:00
поделиться

2 ответа

Пользуясь подсказкой nobugz, я сделал следующее:

  1. В представлении Custom Actions проекта . msi setup project, я добавил следующее в CustomActionData (чтобы передать UILevel моему пользовательскому инсталлятору):

    /UILevel="[UILevel]"

  2. В коде C# для кода, производного от базового класса Installer, я добавил код для получения значения:

    string uiLevelString = Context.Parameters["UILevel"];

  3. Затем было просто разобрать строку для получения значения int. Если значение <= 3, то это тихая установка.

10
ответ дан 13 December 2019 в 22:06
поделиться

Во-первых, я хотел бы отметить, что InstallUtil - очень плохой шаблон. У них заканчивается процесс, они татуируют процесс версией CLR, а в случае сбоя вызывают модальное диалоговое окно с ошибкой 1001 даже во время автоматической установки.

Вместо этого вы должны использовать шаблон WiX DTF.

MsiGetMode (Session.Mode) ограничен во время отложенного выполнения, поэтому вам придется сериализовать и десериализовать UILevel.

http://www.msifaq.com/a/1044.htm

0
ответ дан 13 December 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: