Определение, выбрал ли пользователь «Все пользователи» или «Просто я» в пользовательском действии - PullRequest
3 голосов
/ 18 марта 2010

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

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

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

-Ben

1 Ответ

4 голосов
/ 03 апреля 2010

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

Решением было просмотреть пользовательские действия в графическом интерфейсе свойств для проекта установки. Оттуда выбор пользовательского действия позволил мне отредактировать 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;
    }

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

...