Определение, выбрал ли пользователь "Все пользователи" или "Просто я" в пользовательском действии
Я пытаюсь определить, выбрал ли пользователь радио "Все пользователи" или "Просто я" во время установки моей программы. У меня есть настройка пользовательских действий, которая переопределяет несколько методов (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;
}
Надеюсь, это поможет кому-то там:)