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

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

要访问WiX属性,例如使用Property元素设置的属性,请使用Session对象的索引器。 这是一个例子:

[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标记中声明它并将其隐藏属性设置为yes。

  

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

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

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