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
Properties Wix-从其他CA中动态创建的延迟自定义操作访问属性值_Properties_Wix_Custom Action - Fatal编程技术网

Properties Wix-从其他CA中动态创建的延迟自定义操作访问属性值

Properties Wix-从其他CA中动态创建的延迟自定义操作访问属性值,properties,wix,custom-action,Properties,Wix,Custom Action,我正在制作一个安装程序,它必须配置它安装的web服务。它动态生成属性,这些属性在UI序列中保存从用户收集的数据,安装服务并设置参数 SetParams CA使用在UI序列中生成的动态属性。为了访问延迟CA中的数据,我创建了一个即时CA,它动态提取会话数据并将其放入CustomActionData中 <CustomAction Id='SaveParams' BinaryKey='Setup.CustomAction' DllEntry='SaveParameters' Execute='i

我正在制作一个安装程序,它必须配置它安装的web服务。它动态生成属性,这些属性在UI序列中保存从用户收集的数据,安装服务并设置参数

SetParams CA使用在UI序列中生成的动态属性。为了访问延迟CA中的数据,我创建了一个即时CA,它动态提取会话数据并将其放入CustomActionData中

<CustomAction Id='SaveParams' BinaryKey='Setup.CustomAction' DllEntry='SaveParameters' Execute='immediate'  Return='check'/>
<CustomAction Id='SetParams' BinaryKey='Setup.CustomAction' DllEntry='SetParameters' Execute='deferred' Impersonate='no' Return='check' />

<Custom Action='SaveParams' Before='SetParams'><![CDATA[REMOVE <> "ALL"]]></Custom>
  <Custom Action='SetParams' Before='InstallFinalize'><![CDATA[REMOVE <> "ALL"]]></Custom>
这种方法有效! 当从admin cmd会话启动时[propertyName]返回正确的值,但当我从非提升的cmd提示符运行安装程序更改时,我无法访问即时CA中的属性值-会话[propertyName]返回空字符串

我可以访问wxs文件中定义的(静态)属性

<Property Id="INSTALL" Secure="yes" /> 
有人知道我为什么不能解读动态公共财产价值吗


注:从问题中衍生出来

解决此问题有两种选择。 1.立即操作,读取要从执行序列移动到UI序列的属性 2.执行阶段的操作可以访问问题中所述的安全属性中的数据。 如果属性是在CA中动态创建的,则必须将它们添加到SecureCustomProperties系统属性中。分隔符字符是“;”

<Property Id="INSTALL" Secure="yes" /> 
session[property] = "VALUE"; //eq. property = DATABASENAME