изменение свойств установки в C# пользовательские действия


Как изменить свойства установщика в моем пользовательском действии C#?

2 9

2 ответа:

Чтобы получить доступ к свойству WiX, например к свойствам, заданным с помощью элемента Property, используйте Индексатор объекта сеанса. Вот пример:

[CustomAction]
public static ActionResult CustomAction1(Session session)
{
string myProperty = session["MY_PROPERTY"];
return ActionResult.Success;
}

Настройка свойств также проста. Вы зададите значение, обратившись к ключу с помощью Название вашей собственности. Вот пример:

[CustomAction]
public static ActionResult CustomAction1(Session session)
{
session["MY_PROPERTY"] = "abc";
return ActionResult.Success;
}

Если свойство не существует, когда вы его устанавливаете, оно будет создано. Точно так же вы можете очистите свойство, установив его значение равным null. Создание или изменение значений свойств из пользовательского действия не останавливает установку от отображения этих свойств в журнал установки. Итак, если свойство содержит информацию, которая должна быть скрыта, вы лучше сначала объявить его в разметке WiX и установить его скрытый атрибут - да.

<Property Id="MY_PROPERTY" Hidden="yes" />

Только библиотеки DLL Win32 и VBScript немедленные действия имеют доступ на запись к свойствам установщика. Любой другой тип настраиваемого действия может получать свойства только через свою командную строку или через CustomActionData.

Вот учебник для пользовательского действия библиотеки DLL C++: http://www.codeproject.com/KB/install/msicustomaction.aspx

Для получения и установки свойств установщика Windows можно использовать MsiGetProperty() и MsiSetProperty().