我必须在补丁版本中为我的功能传递一个值给我的自定义操作。我做了一些研究并做了以下事情:
<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,请告诉我