Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能';t将公共属性复制到外部文件表单WiX上的CustomAction_Wix - Fatal编程技术网

我能';t将公共属性复制到外部文件表单WiX上的CustomAction

我能';t将公共属性复制到外部文件表单WiX上的CustomAction,wix,Wix,我试图将公共属性(从CMD设置)的值复制到外部文本文件,但它返回的是属性名称,而不是值: <Property Id='PROP1'/> <Property Id='PROP2'/> <Property Id="CA_DOTNETCA_OnInstall_BeforeInstallingFiles" Value="PROP1=[PROP1];PROP2=[PROP2]" /> <CustomAction Id=&qu

我试图将公共属性(从CMD设置)的值复制到外部文本文件,但它返回的是属性名称,而不是值:

<Property Id='PROP1'/>
<Property Id='PROP2'/>
<Property Id="CA_DOTNETCA_OnInstall_BeforeInstallingFiles" Value="PROP1=[PROP1];PROP2=[PROP2]" />
<CustomAction Id="CA_DOTNETCA_OnInstall_BeforeInstallingFiles" BinaryKey="BIN_DOTNETCustomActions" DllEntry="CA_OnInstall_BeforeInstallingFiles" Execute="deferred" Return="check" Impersonate="no" />
这是文本文件的输出内容:

text : [PROP1] [PROP2]

您可以使用property元素而不是setproperty元素。property元素映射到property表,它不进行字符串格式设置,因此使用的是文本[PROP1][PROP2]。相反,使用自定义操作来设置属性,它将被正确格式化


PS-好消息是您正在使用延迟的自定义操作,这是一个好消息,因为您正在向机器写入文件。但对我来说最突出的是你没有将PROP1和PROP2属性标记为安全的。在某些情况下,这会导致安装程序拒绝传递给它的属性。

即使使用安全属性,它也不起作用,能否提供代码示例不完全是你要求的,但可能会有帮助。有。它更高级一点——使用DTF(WiX工具包的一部分)的特性将属性发送到延迟模式。
text : [PROP1] [PROP2]