gpt4 book ai didi

WiX 无法检查使用 CustomAction 设置的属性

转载 作者:行者123 更新时间:2023-12-01 11:52:16 25 4
gpt4 key购买 nike

我想根据某些值在安装中包含不同的 dll。因此,我尝试根据使用自定义操作设置的属性加载组件。

在wxs文件中:

...
<Property Id="PropDllVersion" Value="0" />
...
<CustomAction Id="CheckPropDllVersion" BinaryKey="CustomAction1.dll" DllEntry="GetPropVersion" Return="ignore" Execute="immediate"/>
...
<InstallExecuteSequence>
<Custom Action="CheckPropDllVersion" After="ValidateProductID" />
</InstallExecuteSequence>
...
<Component Id="Test"
Guid="B81F832D-2D96-4169-9BD0-8D77098FEC60">
<Condition><![CDATA[PropDllVersion = "19"]]></Condition>
<File Id="File15"
Name="xyz.dll"
Vital="yes"
KeyPath="yes"
AssemblyManifest="File5"
AssemblyApplication="File5"
Assembly=".net"
DiskId="1"
/>
</Component>
...

然后在自定义 Action 文件中:

[CustomAction]
public static ActionResult GetPropVersion(Session session)
{
session["PropDllVersion"] = "19";
}

我可以在 msi 日志文件中看到此属性已更改为 19,但安装中未包含 xyz.dll。看起来 PropDllVersion 没有设置在条件级别,或者我做错了什么......我试图在许多其他地方对其进行排序,但它仍然无法正常工作......

如果我在条件中使用全局属性而不是我的属性,它就可以工作!

最佳答案

请注意private properties (其名称包含小写字母)在 InstallExecuteSequence 中使用它们的默认值。所以你应该使用 public property ,例如 PROP_DLL_VERSION。

关于WiX 无法检查使用 CustomAction 设置的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10363576/

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