如何在C#自定义操作中更改安装程序属性?
答案 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()。