2012-06-10 89 views
4

我使用的是Inno Setup Compiler 5.4.3。创建安装应用程序Inno Setup,从光盘缓慢

我的应用程序具有这样的结构:

  • APP.EXE
  • 数据

如果数据是我让所有的应用程序相关的文件(JPG图像)的文件夹。该应用程序将从CD-ROM分发。使用向导创建安装后,我得到一个文件女巫大小为300Mb。

问题是系统需要2-3分钟才能从CD中打开它。我想这是因为文件的大小。如果没有安装人员的任何回应,这段时间太长了。

这种情况有一些简单的解决方案吗? 我不需要压缩文件,如果我可以使安装程序结构看起来与应用程序结构相同(不只有一个文件...),我会好起来的。任何一种能够提高性能的解决方案都会很好。

感谢, 韦德兰

UPDATE: 这里是我的文件设置看起来像:

[Files] 
Source: "C:\data\palacabencic\bin\PalacaBencic.exe"; DestDir: "{app}"; Flags: ignoreversion 
Source: "{src}C:\data\palacabencic\bin\data\*"; DestDir: "{app}\data"; Flags: external 

,如果我试图把{SRC}和外部:

Source: "{src}C:\data\palacabencic\bin\data\*"; DestDir: "{app}\data"; Flags: external 

它不会将数据文件夹添加到安装程序文件夹中,它只会创建设置文件

+1

您可以将[压缩](http://www.jrsoftware.org/ishelp/index.php?topic=setup_compression)设置为'无',但慢度可能取决于读取速度。 –

回答

3

在您的[Files]节记录中指定external标志。需要注意的是:

当指定的外部标志,来源必须是分发介质上的完整路径名的现有文件的 (或通配符)或 用户的系统(如“{SRC} \ license.ini “)。

像这样的东西应该防止对文件incude到输出设置文件:

[Files] 
Source: "{src}\Image.jpg"; DestDir: "{app}"; Flags: external 
+0

我想从光驱读取一个大文件将比读取一千个较小的文件更快,但OP可以测试当然.. –

+0

@Sertac,同意,但在这种情况下是不是一个好主意,包括文件(即使他们会被压缩在一个文件中)到输出设置文件中,因为设置文件在启动之前必须从介质完全读取。恕我直言,最好的办法是压缩所有的图像文件,但保持它们与安装文件分开,一旦安装过程开始,从该压缩文件中提取文件。我敢打赌,这会有一些设置组合。 – TLama

+0

> *“安装文件必须在启动前从介质中完全读取”*>我认为这不正确。 –

0

当您使用external标志,你告诉英诺复制那些已经获得用户的未压缩的文件系统(在你的情况下,在CD上)。并且{src}指定相对于setup.exe本身的路径。

[Files] 
Source: "C:\data\palacabencic\bin\PalacaBencic.exe"; DestDir: "{app}"; Flags: ignoreversion 
Source: "{src}\data\*"; DestDir: "{app}\data"; Flags: external 

编译的输出将只安装程序,但你复制这个和你的数据文件到您的CD后,然后它会在运行安装程序都复制到最终安装路径。

3

您的问题是资源管理器试图在启动它之前查找/验证安装可执行文件上的代码签名证书。由于文件很大,它甚至在它试图运行之前至少读取一次整个文件。 这与Inno KB article中记录的问题相同,导致图标不显示。

的解决方案是使用上的数据文件的external标志(由TLama所建议的),或磁盘跨越到设置分成主安装和数据文件。