0

我必须在补丁版本中为我的功能传递一个值给我的自定义操作。我做了一些研究并做了以下事情:

<CustomAction Id="CustomAction1" Property="customaction2" Value="Value1" />

<CustomAction Id="customaction2" BinaryKey="Binary.dll" 
                  DllEntry="Functionname" Impersonate="no"
                  Execute="immediate" Return="check" />

我还更新了 installExecuteSequence 如下:

<Custom Action='CustomAction1' After="InstallFinalize"><![CDATA[PATCH]]></Custom>
<Custom Action='customaction2' After="CustomAction1"><![CDATA[PATCH]]></Custom>

我还将componentrefs 添加到patch.wxs 文件中。

<CustomActionRef Id="CustomAction1.PackageGuid"/>
<CustomActionRef Id="customaction2.PackageGuid"/>

要访问此参数值,我在 customaction "Functionname" 中尝试了以下代码:

var value = session.Property["CustomActionData"];

“价值”是空的。我做了一些调试,发现我从下面的代码中得到了值:

var value = session.Property["customaction2.PackageGuid"];

我还没有看到任何使用 packageGuids 访问属性的示例。我不确定为什么第一种方法(使用“CustomActionData”)对我不起作用。你们能告诉我我错过了什么吗?

另外,使用 packageGuids 有什么害处吗?如果没有,我打算继续这种方式。如果您需要我尝试任何其他 st,请告诉我

4

0 回答 0