在C#自定义操作中更改安装程序属性

时间:2011-04-20 10:36:29

标签: c# wix windows-installer custom-action

如何在C#自定义操作中更改安装程序属性?

2 个答案:

答案 0 :(得分:15)

要访问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" />

答案 1 :(得分:0)

你做不到。只有Win32 DLL和VBScript 立即操作才具有对安装程序属性的写入权限。任何其他自定义操作类型只能通过其命令行或通过CustomActionData接收属性。

以下是C ++ DLL自定义操作的教程:http://www.codeproject.com/KB/install/msicustomaction.aspx

要获取和设置Windows Installer属性,您可以使用MsiGetProperty()MsiSetProperty()