Inno setup inno设置:设置初始阶段需要6分钟吗?
我使用Inno安装程序制作游戏安装程序,但发现了一些问题 当我运行“Setup_1.0.121.exe”时,在第一个屏幕出现之前大约需要6分钟。 我的安装程序总大小为4.76GB,这是文件列表Inno setup inno设置:设置初始阶段需要6分钟吗?,inno-setup,Inno Setup,我使用Inno安装程序制作游戏安装程序,但发现了一些问题 当我运行“Setup_1.0.121.exe”时,在第一个屏幕出现之前大约需要6分钟。 我的安装程序总大小为4.76GB,这是文件列表 Setup_1.0.121.exe:623863字节 设置_1.0.121-1a.bin:17075872字节 设置_1.0.121-1b.bin:1708200000字节 设置_1.0.121-1c.bin:1697243193字节 我试着深入查找procexp的初始过程,发现了这个问题 Setu
- Setup_1.0.121.exe:623863字节
- 设置_1.0.121-1a.bin:17075872字节
- 设置_1.0.121-1b.bin:1708200000字节
- 设置_1.0.121-1c.bin:1697243193字节
procexp
的初始过程,发现了这个问题
- Setup_1.0.121.tmp:I/O读取字节5085307002:I/O写入字节1061076
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Office2007.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Office2007.cjstyles'), '');
Result := True;
end;
如何解决此问题?如果您正在使用(我假设您正在使用),并且在[files]
部分中的那些大文件之后列出了任何临时文件(ISSkin.dll
和/或Office2007.cjstyles
),那么初始化需要很长时间,因为安装程序正在提取这些临时文件之前列出的所有文件
这可能是由ISSkin.dll
库引起的,该库是为脚本引擎加载而提取的(如果未使用标志),或者是由函数手动提取Office2007.cjstyles
皮肤文件。此函数的引用中甚至有警告:
启用实体压缩后,请确保列出临时
位于[文件]部分顶部(或附近)的文件。为了提取
在固态压缩安装中的任意文件,必须先安装
解压缩所有以前的文件(到内存中的临时缓冲区)。这个可以
如果列出了许多其他文件,则会导致严重延迟
在[Files]部分的指定文件上方
如果我的假设是正确的,并且您已经启用了下面列出的这些大型数据文件和临时文件,那么我们可以将您的脚本重建为如下内容:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
SolidCompression=yes
[Files]
; first are listed huge files
Source: "Setup_1.0.121.exe"; DestDir: "{app}"
Source: "Setup_1.0.121-1a.bin"; DestDir: "{app}"
Source: "Setup_1.0.121-1b.bin"; DestDir: "{app}"
Source: "Setup_1.0.121-1c.bin"; DestDir: "{app}"
; if SolidCompression is enabled, all the prior files are extracted
; when any of the the following files is extracted
Source: "ISSkin.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "Office2007.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy
...
如果你仔细阅读这篇文章,你已经知道答案就在参考文献的引文中。您只需在[files]
部分的顶部列出所有临时文件,以避免解压缩大型文件。因此,上述脚本将变成:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
SolidCompression=yes
[Files]
; first are listed temporary files
Source: "ISSkin.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "Office2007.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy
; the huge files are now extracted just when they are needed
Source: "Setup_1.0.121.exe"; DestDir: "{app}"
Source: "Setup_1.0.121-1a.bin"; DestDir: "{app}"
Source: "Setup_1.0.121-1b.bin"; DestDir: "{app}"
Source: "Setup_1.0.121-1c.bin"; DestDir: "{app}"
...
你有没有试着去除皮肤看看这是不是真正的原因?好的。问题解决了。这是我的错。我只是删除了不必要的isskin函数,一切正常。嗯,解决了吗?好吧,你说ISSkin对你来说是不必要的,好吧,但不是所有你可以通过移除它来“解决”的事情。想象一下你将如何“解决”例如头痛:)