Определение, выбрал ли пользователь "Все пользователи" или "Просто я" в пользовательском действии

Я пытаюсь определить, выбрал ли пользователь радио "Все пользователи" или "Просто я" во время установки моей программы. У меня есть настройка пользовательских действий, которая переопределяет несколько методов (OnCommit, OnBeforeInstall и т. Д.). Прямо сейчас я пытаюсь узнать эту информацию во время OnCommit.

Я читал, что свойство, к которому я хочу получить, является свойством ALLUSERS, но мне не повезло найти, где оно будет храниться в экземплярах / локальных данных.

Кто-нибудь знает, как это сделать?

-Бен

1 ответ

Решение

Собираюсь ответить на мой здесь.

Решением было просмотреть пользовательские действия в графическом интерфейсе свойств для проекта установки. Оттуда выбор пользовательского действия позволил мне отредактировать CustomActionData, и в этом случае я добавил:

/AllUsers=[ALLUSERS]

Оттуда я мог определить, была ли это установка для всех пользователей из кода CS настраиваемого действия:

private bool IsAllUsersInstall()
    {
        // An ALLUSERS property value of 1 specifies the per-machine installation context.
        // An ALLUSERS property value of an empty string ("") specifies the per-user installation context.

        // In the custom action data, we have mapped the parameter 'AllUsers' to ALLUSERS.
        string s = base.Context.Parameters["AllUsers"];

        if (s == null)
            return true;
        else if (s == string.Empty)
            return false;
        else
            return true;
    }

Надеюсь, это поможет кому-то там:)

Другие вопросы по тегам