锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / C++安装发布开源 / AdvancedInstaller的source file not found
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

AdvancedInstaller的source file not found


背景

最近x64英文环境下安装包出source file not found问题,里面带cab提示,结合一些翻译讲解下怎么解决。

we are using Advanced Installer 12.5 for our product. we have an issue with one of our customers where installation sometimes fails with an error:
"Source file not found: C:\Windows\TEMP\abc\install\9B1C6AF\x86\abc.dll. Verify that the file exists and that you can access it."

Attached is the relevant snippet from the installation log (error.txt attachment).

This dll is the first dll installed by the installer - so it fails right at the beginning of the installation. however, sometimes the installation is successful also for this customer.

I ran process monitor and compared installation successful scenario to failed scenario. when the installation fails I can see that first msiexec.exe searches for abc.dll and doesn't find it, then ABCInstaller.exe (our installer exe) writes this dll into the temp folder. When the installation is successful I can see that the order is reversed - first ABCInstaller.exe writes this dll into the temp folder and only then msiexec.exe searches for this dll and finds it successfully.
我们正在为我们的产品使用Advanced Installer 12.5。我们的一位客户遇到了一个问题,该安装有时会因错误而失败:
“找不到源文件:C:\ Windows \ TEMP \ abc \ install \ 9B1C6AF \ x86 \ abc.dll。请验证该文件是否存在以及您可以访问它。”

附件是安装日志中的相关代码段(error.txt附件)。

该dll是安装程序安装的第一个dll-因此在安装开始时便会失败。但是,有时该客户也可以成功安装。

我运行了进程监视器,并将安装成功方案与失败方案进行了比较。当安装失败时,我可以看到第一个msiexec.exe搜索abc.dll并没有找到它,然后ABCInstaller.exe(我们的安装程序exe)将此dll写入了temp文件夹。安装成功后,我可以看到顺序相反-首先ABCInstaller.exe将此dll写入temp文件夹,然后msiexec.exe会搜索该dll并成功找到它。
Are you familiar with such issue and root cause of this behavior?。

This error may be caused by an Advanced Installer limitation regarding the file extraction.

Currently, the .EXE setup files built with Advanced Installer extract the embedded files (MSI, CAB, etc) asynchronously during the Wizard Dialogs stage to improve the installation time. Our old method was to extract the files at the very beginning of the installation, before the UI dialogs appear.

Can you please try to set the "ExtractFilesFirst" property to "1" in "Install Parameters" page, rebuild the project and see if that helps? This way, the old extraction method will be used.

此错误可能是由高级安装程序有关文件提取的限制引起的。

当前,使用高级安装程序生成的.EXE安装文件在向导对话框阶段以异步方式提取嵌入式文件(MSI,CAB等),以缩短安装时间。我们的旧方法是在安装开始之初,即在出现UI对话框之前提取文件。

您能否在“安装参数”页面中尝试将“ ExtractFilesFirst”属性设置为“ 1”,重新生成项目,看看是否有帮助?这样,将使用旧的提取方法。


No, running the installer as "ABCInstaller.exe ExtractFileFirst=1" does not has the same efect as changing the specified property's value from "Install Parameters" page. Please keep in mind that only public properties can be set through command line as it follows:

不行,以“ ABCInstaller.exe ExtractFileFile = 1”的身份运行安装程序与从“安装参数”页面更改指定属性的值的效果不同。请记住,只能通过命令行设置公共属性,如下所示:

MY_PROPERTY="myValue"
An example would be as it follows:
msiexec /i "C:\Example.msi" MY_PROPERTY="myValue"

In what regards the environment where the setup is deployed, indeed, this may happen due to the environment as well. This is why we always suggest to be used virtual machines with clean states every time a setup is tested. That way, you can always revert to an earlier checkpoint when something goes wrong.实际上,无论在哪种环境下部署安装程序,这也可能由于环境而发生。这就是为什么我们总是建议每次测试设置时都使用具有干净状态的虚拟机。这样,当出现问题时,您始终可以恢复到较早的检查点。

我们经验

安装包的组织方式调整下,如下图:

ai_source_file_not

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内