gpt4 book ai didi

c# - WiX CustomActionData 在调用的 CustomAction 中为空

转载 作者:可可西里 更新时间:2023-11-01 08:21:30 24 4
gpt4 key购买 nike

我又一次陷入了一个问题,这可能很容易解决。
我想扩展一个使用 WiX 创建的设置,以更改已安装程序的配置文件。为此,我创建了一个 CustomAction。为了能够更改配置文件,我需要知道它在我的 CustomAction 中的(安装)位置。因此,我尝试将 INSTALLLOCATION 和文件名传递给我的 CustomAction。问题就在这里:CustomActionData-Attribute 始终为空,设置会引发异常。

我的 CustomAction 是一个 C# DLL 文件:DemoDatumErzeugen.CA.dll .它包含一个方法 DatumEintragen修改配置文件。我正在尝试以这种方式访问​​数据:

string path = session.CustomActionData["LOCATION"];

这是抛出异常的地方。我只收到德语错误消息,但它说的是:The supplied key was not found in the dictionary (Der angegebene Schlüssel war nicht im Wörterbuch angegeben.)。

这就是我尝试将属性从设置脚本传递到自定义操作的方式:

<Binary Id="DemoDatumEinrichtenCA" SourceFile="DemoDatumErzeugen.CA.dll"/>

<CustomAction Id="DemoDatum.SetProperty" Return="check" Property="DatumEintragen" Value="LOCATION=[INSTALLLOCATION];NAME=StrategieplanConfig.xml;"/>
<CustomAction Id="DemoDatum" BinaryKey="DemoDatumEinrichtenCA" DllEntry="DatumEintragen" Execute="deferred" Return="check" HideTarget="no"/>

<InstallExecuteSequence>
<Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>
<Custom Action="DemoDatum" After="DemoDatum.SetProperty"/>
</InstallExecuteSequence>

我见过很多以相同或至少非常相似的方式完成的示例。我尝试了很多东西,但似乎没有什么比更改 <Custom Action="DemoDatum.SetProperty" After="InstallFiles"/> 中的值更有效了。 . CustomActionData 始终为零。
我检查它:session.CustomActionData.Count
再次感谢您在我做错的地方提供的任何帮助或提示。

最佳答案

DemoDatum.SetPropertyProperty 属性值应等于延迟操作的Id 属性值。因此,要么将属性名称更改为 DemoDatum,要么将延迟操作的 Id 更改为 DatumEintragen

关于c# - WiX CustomActionData 在调用的 CustomAction 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9564090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com