微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WiX 工具集,通过自定义操作设置安装目录路径,有效,但值更改回默认值

如何解决WiX 工具集,通过自定义操作设置安装目录路径,有效,但值更改回默认值

我正在尝试创建一个 msi 安装程序,它将应用程序安装到控制台会话的本地应用程序数据目录,即使运行 msi 的会话是系统会话(通过 GPO 部署时)。
为此,我正在创建一个自定义操作,用于提取“正确”的本地应用程序数据目录(此代码有效,没有问题)。
自定义操作将设置名为“INSTALLDIR”的属性的值。
这是来自 wxs 的相关代码

<Property Id="INSTALLDIR" Value="C:\Users\default\AppData\Local\" />
<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="INSTALLDIR">
        <Directory Id="APPLICATIONFOLDER" Name="MyApp">
        ...

<Binary Id="MyCA" SourceFile="My.CustomActions.CA.dll"/>
<CustomAction Id="MyCASetLocalAppData" Impersonate="no" BinaryKey="MyCA" DllEntry="SetLocalAppData" Return="check" />
...

<InstallExecuteSequence>
    <Custom Action="MyCASetLocalAppData" Before="CostFinalize">Not Installed OR UPGRADINGPRODUCTCODE</Custom>

在安装日志中,我可以看到 INSTALLDIR 的值从自定义操作的初始值更改为正确的值,但稍后在日志中,INSTALLDIR 的值再次成为认值。

好像我需要多次调用 MyCASetLocalAppData...

我该如何解决这个问题?

谢谢!

解决方法

我知道文档说要在 CostFinalize 之前安排,但这可能为时已晚。尝试将其更改为 After="CostInitialize"(这是 WiX 的 SetDirectory 元素对其进行调度的时间)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。