2011-04-18 60 views
2

將屬性傳遞給自定義動作而不分析它們的獨特方式是什麼?我的意思是如果我寫「X1 = X1value X2 = X2value」,那麼在我的自定義操作中X1將等於「X1value X2 = X2value」,並且X2不會作爲單獨的屬性存在。那麼什麼是屬性字符串格式?將幾個屬性傳遞給自定義動作

+0

您的CustomAction使用哪種語言? VBScript,JScript,InstallScript,C/C++(使用WiX wcautil.lib/dutil.lib?),C#(安裝程序類還是DTF)? – 2011-04-18 12:22:38

+0

我的CustomAction使用WiX自定義操作模板,並用C#編寫 – 2011-04-18 12:33:38

回答

4

我不知道有序列化和序列化CustomActionData的「標準」。雖然有一些圖書館。如果您碰巧使用C#DTF自定義操作,則有一個CustomActionData類可以爲您序列化和反序列化屬性集合。否則,你很可能拿出自己的模式,如:

/PROPERTYA =值a/PROPERTYB = VALUEB

PROPERTYA =值a; PROPERTYB = VALUEB

甚至像一個XML片段

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

重點是序列化和反序列化,以便它可以提供給您的延期CA.

+0

是的,我使用DTF CustomActionData類。以什麼格式爲CustomActionData寫入字符串以成功反序列化值? – 2011-04-18 12:35:12

+0

想通了,我可以使用;作爲屬性分隔符,然後WiX會反序列化它們。 – 2011-04-18 12:51:36

+0

類型51設置屬性自定義操作可以工作,但是如果您的需求變得更加複雜(例如查詢自定義表,評估組件操作狀態並生成命令集),則還可以使用另一個DTF自定義操作來創建CustomActionData然後將它序列化爲字符串。 – 2011-04-18 12:53:25