gpt4 book ai didi

Wix自定义操作加载dll文件失败?

转载 作者:行者123 更新时间:2023-12-04 21:43:29 25 4
gpt4 key购买 nike

我正在尝试在安装 msi 时执行自定义操作。但我的自定义操作所需的 dll 依赖于其他 dll。在安装时,它给出类似“完成此安装所需的 dll 无法运行”之类的错误。如何加载依赖的 dll 文件以使此自定义操作正确运行。

我正在使用的代码是

<CustomAction Id='CheckingPID' BinaryKey='CheckPID' DllEntry='ValidateKey' />
<Binary Id ='CheckPID' SourceFile='$(sys.CURRENTDIR)\LicenseKeyClient_32d.dll'/>
<Binary Id ='CheckPID2' SourceFile='$(sys.CURRENTDIR)\curllib.dll'/>
<Binary Id ='CheckPID3' SourceFile='$(sys.CURRENTDIR)\libsasl.dll'/>
<Binary Id ='CheckPID4' SourceFile='$(sys.CURRENTDIR)\openldap.dll'/>

最佳答案

您在二进制表中添加的文件通常会在安装过程中使用临时名称进行提取,因此您的 DLL 将无法找到您在其旁边添加的其他 DLL。

解决方法是将这些 DLL 作为普通文件添加到临时系统文件夹中,并在安装结束时删除它们。这有一个限制,您需要将自定义操作设置为延迟,以便它在安装文件后执行,从而将您的 DLL 复制到 Temp 文件夹。

不知道wix是否支持temporary files ,与高级安装程序中的类似,但如果没有,您可以尝试编写一个自定义操作来模拟它。基本上,高级安装程序的作用是在 MSI 启动时提取 Temp 文件夹中的这些文件,并在安装完成时删除它们。这样做的优点是您可以在立即自定义操作中使用临时文件,即在安装包中的文件之前。

关于Wix自定义操作加载dll文件失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24796535/

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