Properties 将几个属性传递给自定义操作

Properties 将几个属性传递给自定义操作,properties,wix,windows-installer,custom-action,Properties,Wix,Windows Installer,Custom Action,将属性传递给自定义操作而不进行解析的标准方法是什么?我的意思是,如果我写“X1=X1value X2=X2value”,那么在我的自定义操作中,X1将等于“X1value X2=X2value”,而X2将不会作为单独的属性存在。那么什么是属性字符串格式呢?我不知道序列化和序列化CustomActionData有一个“标准”。不过外面有几个图书馆。如果您碰巧正在使用C#DTF自定义操作,那么有一个CustomActionData类可以为您序列化和反序列化属性集合。否则,您几乎会想出自己的模式,如:

将属性传递给自定义操作而不进行解析的标准方法是什么?我的意思是,如果我写“X1=X1value X2=X2value”,那么在我的自定义操作中,X1将等于“X1value X2=X2value”,而X2将不会作为单独的属性存在。那么什么是属性字符串格式呢?

我不知道序列化和序列化CustomActionData有一个“标准”。不过外面有几个图书馆。如果您碰巧正在使用C#DTF自定义操作,那么有一个CustomActionData类可以为您序列化和反序列化属性集合。否则,您几乎会想出自己的模式,如:

/PROPERTYA=VALUEA/PROPERTYB=VALUEB

财产a=价值a;属性b=值b

甚至像这样的XML片段

<Properties>
 <Property Id="PROPERTYA">VALUEA</Property>
 <Property Id="PROPERTYB">VALUEB</Property>
</Properties>

瓦卢亚
瓦卢布

关键是序列化和反序列化,以便您的延迟CA可以使用它。

您的CustomAction使用什么语言?VBScript、JScript、InstallScript、C/C++(使用WiX wcautil.lib/dutil.lib?)、C#(安装程序类或DTF)?我的自定义操作使用WiX自定义操作模板,并用C#编写。是的,我使用DTF自定义操作数据类。为CustomActionData成功地反序列化值,字符串应该以什么格式写入?我知道我可以使用;作为属性分隔符,然后WiX将对其进行反序列化ok。类型51设置属性自定义操作将起作用,但如果您的需求变得更复杂(例如查询自定义表,评估组件操作状态,然后生成命令集)您还可以使用另一个DTF自定义操作来创建CustomActionData类,然后将其序列化为字符串。