我必须为我的功能在补丁程序发布中将值传递给自定义操作。我做了一些研究,并做了以下工作:
JSONArray array = new JSONArray(JsonString);
我还如下更新了installExecuteSequence:
<CustomAction Id="CustomAction1" Property="customaction2" Value="Value1" />
<CustomAction Id="customaction2" BinaryKey="Binary.dll"
DllEntry="Functionname" Impersonate="no"
Execute="immediate" Return="check" />
我还将componentrefs添加到了patch.wxs文件中。
<Custom Action='CustomAction1' After="InstallFinalize"><![CDATA[PATCH]]></Custom>
<Custom Action='customaction2' After="CustomAction1"><![CDATA[PATCH]]></Custom>
要访问此参数值,我在我的自定义动作“ Functionname”中尝试了以下代码:
<CustomActionRef Id="CustomAction1.PackageGuid"/>
<CustomActionRef Id="customaction2.PackageGuid"/>
“值”为空。我进行了一些调试,发现我从下面的代码中获取了价值:
var value = session.Property["CustomActionData"];
我还没有看到任何使用packageGuids访问属性的示例。我不确定为什么第一种方法(使用“ CustomActionData”)对我不起作用。 你们能让我知道我在想什么吗?
此外,与packageGuids一起使用是否有害?如果没有,我计划继续这种方式。如果您需要我尝试其他任何方式,请告诉我